5-6. 分散システムへの流れと設計 '99 末頃から (1) WebLogic を試してみる `02/12/21 * インスト−ルからサンプル実行 WebLogic、ちゃんと購入してもまるで何もない。ライセンスの入ったフロッピ−が1枚来 ただけである。ソフトはインタ−ネットからダウンロ−ドするか、雑誌の付録 CD-ROM に あるよというだけ。 それで「DB Magazine」`02/10,"特集:アプリケ−ションサ−バ徹底 入門" の CD-ROM に入っていた BEA WebLogic Server 5.1 を使うことにした。 これを入 れると JDK 1.2 の JRE も入るとのこと。JRE( Java Runtime Environment ) は Java の 実行環境のことで、プログラムのコンパイルはできないが実行はできる。 早速 WebLogic のサンプルを試してみようと思ったが、コンパイルされていなかった。JDK もやっぱり入 れないといけない。それで「月間ジャバワ−ルド」`02/06から Windows 用の jdk1.2.2を 入れた。Java 2 SDK, Standard Edition 1.2.2 for Windows 95/98/NT4.0 である。 日本語でのマニュアルは http://second.beasys.co.jp/weblogic/docs を見られたい。マ ニュアルセンタ−ということで、ほとんど全部の英文が翻訳されている。紙のマニュアル は元々全然ない。めぼしいのをプリントしてバインダ−に閉じて使うことにしよう。サン プル・プログラムは結構充実している。これでしばらくは遊んでみるか。JSP や Servlet のは勿論だがいろいろある。Java Pet Store は Sun が開発の J2EE を利用したオンライ ン取り引きショップのデモである。ZAC というのは、Java の Applet や Application を クライアントに自動配布するらしいというもの。konaHtml は WebLogic 特有の、HTML 簡 便生成ル−チン?。XML の DOM/SAX のサンプルもちゃんとある。Cookiesを使わないセッ ション管理の例で SessionServlet.java というのもある。 仕組みはクライアントを区別 http://localhost:7001/session?WebLogicSession=HEnomoHeXSwSSS ... ダ−と続く するための Session ID という識別子を設定することによる。ブラウザがサ−バに最初に アクセスした際、ブラウザに固有の識別子を付ける。以後ブラウザがサ−バにアクセスす る時には、その識別子を使うという訳である。上記では HEnomoHeXSwSSS ... という長い Session ID をサ−バに送って、区別している。 そうそうインスト−ルしたマシンは、手元にあるノ−トパソコン Gateway Solo、166 MHz、 メイン・メモリ 64 Mbyte の Windows NT 4.0 である。こりゃかなり遅い。試して試せれ ないことはないというレベルだ。"WebLogic Server" に "WebLogic Console" を稼働させ るのはかなり苦しい感じ。ハングったりもして。 1) JSP サンプルをコピ−する [examples/jsp] を [myserver/public_html] 下にフォルダ−ごとコピ−すること。 D:\weblogic ---[bin][classes] | |-[examples]---[jsp]-- HelloWorld.jsp, index.html | | | |-[servlets][intro] .. | |-[myserver]---[public_html]--[jsp]-- HelloWorld.jsp, index.html | | | |-[classfiles]--[jsp_servlet]--[jsp]-- _helloworld.class 2) Windows NT の環境設定と WebLogic の起動 DOS 窓を開いて D:\> set path=d:\jdk1.2.2\bin;d:\weblogic\bin;%path% とやる。これ だとパソコンを起動する度に、このコマンドを打たなけない。NT の [コントロ−ル パネ ル]->[システム]->[環境] で Path に追加しておくといいだろう。 [スタ−ト]->[プログラム]->[WebLogic5.1.0] Utilities ---> About Utilities WebLogic Tour Applet Archiver About WebLogic Edit Server Properties EJB Deployer Show Settings WebLogic Console WebLogic Server ZAC Publisher 3) JSP 最初のサンプルを実行する "Edit Server Properties" で servlet.properties ファイルをいじる。 JSP のとこのコ メントを外す。このことは下記の ../jsp/index.html を見れば書いてある。 そして肝心 の WebLogic をメニュ− "WebLogic Server" をクリックして起動する。 -------------------------------------- (listing) をクリックすると、プログラムの |http://localhost:7001/jsp/index.html ソ−スを表示する。 |------------------------------------- | | (run) をクリックするとコンパイルして実行 | HelloWorld.jsp (listing) (run) する。ソ−スを変更した時、クリックすると | | 再コンパイルがかかる。make 見たいな動き。 ↓(run) ----------------------------------------- |http://localhost:7001/jsp/HelloWorld.jsp |---------------------------------------- |Hello World << 赤で大きい文字 |Hello World! << 黒で小さい文字 | --------------------------------------- |Copyright(C)1999-2000 by BEA System,Inc. * Servlet のサンプル D:\weblogic\setEnv.cmd 開発環境の設定。JAVA_HOME=d:\java1.1.7 になって -------------------------- いたのを修正した。他環境変数には CLASSPATH, PATH, |set WL_HOME=D:\weblogic JDK_CLASSES などがある。セットされているかの確認 |set JAVA_HOME=d:\jdk1.2.2 は DOS 窓で set と打てば環境変数が出て来る。 D:\weblogic>setEnv Windows NT 用の DOS コマンドシェル、setEnv.cmd。 D:\weblogic>set 一杯出て来る。>set | more とやって表示してもいい。 Path=D:\weblogic\bin;D:\jdk1.2.2\bin; ... SERVLET_CLASSES=D:\weblogic\myserver\servletclasses WL_HOME=D:\weblogic D:\weblogic\myserver\public_html\servlets>dir *.java /w HelloWorldServlet.java, SimpleServlet.java などソ−スいろいろ。Servlet のサンプ ルは public_html下でなくてもよかった。 >javac -d %SERVLET_CLASSES% HelloWorldServlet.java このディレクトリでコンパイルする。コンパイル・オプションの -d は、できた実行イメ −ジの保管場所である。つまり環境変数 D:\weblogic\myserver\servletclasses の所に セ−ブする。ちなみ javac hello.java とやるとカレントのディレクトリに hello.class ができる。 では、すぐに servletclasses\ に実行イメ−ジが入るかと言えばそうでない。 HelloWorldServlet.java ソ−スの頭の方に記述されている package examples.servlets; が関係する。servletclasses\ 下の examples\servlets\ 下に HelloWorldServlet.class ができることになる。そして実行は、weblogic.properties ファイルに登録した名前で行 う。http://localhost:7001/helloWorld である。んな−、ややこしいばい。 [myserver/servletclasses/examples/servlets] --HelloWorldServlet.class weblogic.properties ファイル(関係するところだけ表示) ----------------------------------------------------------------------- |weblogic.httpd.register.helloWorld=examples.servlets.HelloWorldServlet ↑ これがプログラムの実行名になる HelloWorldServlet.java ブラウザからクラス名を入れて実行 ---------------------------------- ----------------------------------- |package examples.servlets; |http://localhost:7001/helloWorld | |---------------------------------- |import javax.servlet.*; |Hello katou! |import javax.servlet.http.*; |import java.io.*; | |public class HelloWorldServlet extends HttpServlet { | public void service( HttpServletRequest req, HttpServletResponse res ) | throws IOException | { | res.setContentType( "text/html" ); PrintWriter out = res.getWriter(); | out.println( "