いきなり EJB (Enterprise JavaBeans)

〜 WebLogic Server6.1Jによる試み 〜

更新日 2002/9/8

[HOME] / [Java] / [Perl5] / [Palm(GCC)] / [Palm(CodeWarrior)] / [本の紹介]


1. はじめに
 最近、Java関連の雑誌を見ていると、EJB (Enterprise JavaBeans) という言葉をよく見かけるようになりました。このEJBについてアプリケーションサーバ (以下 APサーバ)、トランザクション処理などをキーワードに、ミッションクリティカルなサーバ機能への適用を目標として、基礎の基礎と思われる部分を実践的に検証していきたいと思います。
 APサーバとしては、BEA社のWebLogic Server 、IBM社のWebSphere などを含め各社から提供されていますが、大きく分けて端末のブラウザに情報を提供することに重きをおいたものと、トランザクション処理などサーバ側の処理に重きをおいたものに分類されます。 JavaWorld などの記事などから判断すると、Websphereは端末側に、WebLogicはサーバ側の処理に特長を持っているように思われます。(1999年10月にリリースされるWebLogic4.5ではJSP1.0も搭載され、端末側の機能も充実されています)

 両方とも、評価用のソフトがダウンロード可能でパソコンで試すことができます。特にWebLogicは ドキュメント が充実しており、これを読んでいるだけである程度のノウハウが読み取れます。ここでは、このWebLogicを使ってEJBとは何なのか、システムへの適用について考えて行きたいと思います。

 以前紹介していたWebLogic Server5.1は既にダウンロードできなくなってしまいましたので、徐々に6.1Jに合わせていく予定です。特にweblogic.propertiesあたりが大きく変わっているため、とっつきが悪そうですが、以前からの違いをつきとめつつ解説していきたいと思います。以前のHPは こちら においておきます。

   2. 準備(インストール)
   3. ちょっとだけ実験
   4. EJBとは何か?
   5. データベースとトランザクション処理
   6. SSL(Secure Socket Layer)の設定
   7. TUXEDOとの接続
   8. VisualCafeでのデバッグ
   9. JSP (Java Server Pages) をかじる
 10. CORBA インタフェースを提供する
 11. いまさらCGI   <NEW>
 12. サーブレット再び   <NEW>
 13. 参考文献
2. 準備 (インストール)            ↑top
 WebLogicは 100% PureJavaで JVM の環境さえあれば、どのマシンでも動くことになっています。ここでは、Windows2000で動作させてみます。メモリは最低128MB欲しいようなことが書かれていたと思います。このページを始めた頃は128MBで1万円ぐらいしましたが、今は雑誌1冊ぐらいの値段になってますね。
  1. まず、WebLogicの30日間有効評価版をダウンロードしてきましょう

  2. BEA社ホームページ にて「ダウンロード」を選択し、続けけて「WebLogic Server 6.1J & SP」をクリックします。それでもって、「 BEA WebLogic Server 6.1 and Service Pack 2 for Windows 」を選びます。75.1MBだそうです。私は果敢にも、ISDNで挑みました。皆さんはADSLですよね。うらやましー。

    初めての方は、簡単なユーザ登録が必要です。ユーザIDはメールアドレスで、パスワードは任意に設定できたと思います。確認のメールもBEA社から届きます。ファイル名は weblogic610sp2_win.exe ですが、これをダブルクリックしてインストールします。
     

  3. とにかく動かしてみましょう。Windowsのスタートメニュー  -> プログラム -> BEA WebLogic E-Bussiness Platform -> WebLogic Server6.1 -> WebLogic Tour -> Run Pet Store を選択してください。コマンドプロンプトが開き、途中「WebLogic サーバを起動するためのパスワードを入力してください」と言われるので、インストール時に入力したパスワードを入力してください。ペットショップのデモですが、なかなか楽しめます。

  4. 以前バージョンでは、インストール後の設定を行ったような記憶がありますが、本バージョンでは一切不要のようです。そういえば以前はJDKも別にシンストールしてたような気がする。

3. ちょっとだけ実験    ↑top
 サーブレットは、Webでのサーバサイドプログラミング技術 の1つで、CGI のJava版だと思っています。通常の CGI がその度にプロセスが起動するのに対して、サーブレットはスレッドで動くためオーバヘッドが少なく処理性能がよいとされています。 ここでは、サーブレットの実験を通して WebLogjc Server の動作確認してみましょう。サンプルとして \weblogic\examples\servlets\HelloWorldServlet.java を使います。

6.1Jでは、プロパティファイルが大幅に変わってますので、このままでは動きません。少々お待ちください。

  1. サンプルプログラムの HelloWorldServlet.java をコンパイルします

  2. C:\>cd \weblogic\examples\servlets
    C:\weblogic\examples\servlets> javac -d \weblogic\classes HelloWorldServlet.java

    これにより、\weblogic\classes\examples\servlets\HelloWorldServlet.class として作成されます
    ここでコンパイルエラーが出るのは前節のCLASSPATHの設定が行われていない可能性があります
     

  3. プロパティファイルにサーブレットを設定します

  4. \weblogic\weblogic.properties に以下の設定を追加します。 HelloWorld は何でもかまいません。

    weblogic.httpd.register. HelloWorld=examples.servlets.HelloWorldServlet
     

  5. WebLogic Server を起動します

  6. Windowsのスタート->プログラム->WebLogic 5.1 ->WebLogic Server で起動します
     
  7. ブラウザから、http://localhost:7001/HelloWorld でサーブレットを呼び出します。

  8. HelloWorld は上の設定に合わせています。
    Hello World! と表示されれば、正常に動作していることになります
 これらの作業は、コマンドプロンプト画面を使って行いますが、画面がスクロールできないため流れて行った情報が読み取れずに困ってしまいます。WindowsNTでは、以下の方法でスクロールできるようになります。

 コマンドプロンプトの上方ラベルで右クリックして、「プロパティ」を選択し、「レイアウト」のタブを選んで「ウィンドウのサイズ」を 幅 120 高さ 40に、 「画面バッファのサイズ」を 幅 120 高さ 200 に設定する。いちいち設定するのは面倒なので 「このウィンドウを起動したショートカットを変更する」 で次回からスクロールが出来るように設定する。
 
4. EJB (Enterprise Java Beans) とは何か?   ↑top
 先に紹介したBEA社のHPによれば、Enterprise JavaBeanの本質は、トランザクション的でセキュアなRMI(またはCORBA)のオブジェクトということです。EJBでは、セキュリティ、トランザクション、状態管理の詳細を処理するコンポーネント・フレームワークにビジネス・ロジックがカプセル化され、 マルチスレッド、リソース・プール、クラスタリング、分散ネーミング、自動持続性、リモート呼出し、トランザクション境界管理、分散トランザクション管理等のはん雑な処理は、EJBの「コンテナ」がおこなうので、EJB開発者はビジネスに関する問題解決に専念できます。これらの内容は、 BEA社のEJBに関する記述 を参考にされた方が分かりがいいと思います。また、EJBを作るにあたってのノウハウが WebLogic Server EJBの設計と開発 として用意されているので、こちらも参考にしてください。

 EJB は、大きく以下の4つに分類されます。それぞれについて例題を用いながら説明していきましょう。

  1. コンテナ管理 Entity Bean (サンプルプログラムを使った説明

  2. コンテナ生成ツールが Entity Bean の永続化を維持するデータベースアクセスコードを自動的に生成してくれるものです。開発者は、このためのコーディングをする必要がなく、驚くほど簡単にEJBが書けてしまいます。実際に見たほうが理解しやすいので、 サンプルプログラムを使って説明 していきたいと思います。この例では、データベースと連携するのが面倒だったので、File による永続化を選択しています。
     
  3. Bean管理 Entity Bean

  4. Entity Bean 自身のコードで自らの永続化を管理する方法で、きめ細かい管理が実現できます。実際には永続化時にコンテナから自動的に呼ばれるメソッドにJDBCでSQLを発行するようなコーディングを行うことになります。このとき、データベース依存部分ができるためEJBのポータビリティが損なわれる欠点があります。
     
  5. ステートフル Session Bean(サンプルプログラムを使った説明

  6. クライアントとのセッション管理機能を持つ Bean で、クライアントは自分が生成した Bean をあたかもクライアントに存在するオブジェクトのようにアクセスすることが可能になります。
     
  7. ステートレス Session Bean

  8. その名の通り、固有の情報や状態を保持しないため、リソースの消費が少なく、シンプルで軽量なサーバコンポーネントが実現できます。セッション管理はクライアントに任されます。
EJBの開発手順をJavaWorld1999年6月号を元にまとめています(作成中)

この他、Java World 1999年9月号の「実践 Enterprise Java Beans 〜第2回 Session Beanの開発(その1)〜」での例題を用いて、端末からサーブレットを通して ステートフルな Session Bean を呼び出す方法を検証してみることにします。
 
5. データベースとトランザクション処理     ↑top
 準備中
Oracleとの接続
 
 
6. SSL(Secure Socket Layer)の設定     ↑top
 SSLは、安全な接続の交渉を行うためにNetscapeが提案したプロトコル標準で、エレクトリックコマース(電子商取引)などを行う際にクレジット番号などの情報がインターネット上で他人に読みとられることがないように、主にブラウザとサーバの間で情報の暗号化を行うためのしくみです。

 正式なIDを取得する前に、ちょっとだけ動作確認をしておきましょう。とりあえずWebLgic Serverを起動してください。デモ用のSSLはデフォールトで設定されています。この状態で、ブラウザから https://localhost:7002/ とすると、以下のような画面が表示されると思います。

 新しいサイト証明書  ・・・ですが、Netscapeは証明書に署名した発行人を認識できません。

 次の画面で、受け付けるかどうかを聞いてきますので、例えば、「このセッションに対して、証明書を受け付ける」を選択します。そうするとWebLogic Serverの紹介画面が表示され、左下の鍵が掛かるはずです。これで確認は終わりです。

 それでは、有名な認証局であるベリサイン社 からテスト用のディジタルIDを取得して実験してみましょう。 しくみの簡単な解説 もありますので、参考にしてください。

  1. WebLogic Serverを起動し、ブラウザで http://localhost:7001/Certificate を指定します。このときアカウントとパスワードを求められますが、systemとインストール時に設定したパスワードを記入します。パスワードは、\weblogic\weblogic.propertiesファイルにも書かれていますので忘れちゃった場合は参照してください。

  2.  
  3. Server Certificate Request Generatorなるものが表示されます。会社やサイトに関する情報を記入して Generate Request をクリックします。以下はすべて半角英数字で記入します

  4. Country code(国コード)・・・・・・・・・・・・・・・JP(日本)
    Organizational unit name(部署名)・・・・・・・テスト用ID取得なので架空のものでいいのかも知れません
    Organization name(会社名)・・・・・・・・・・・・同上
    Email address・・・・・・・・・・・・・・・・・・・・・・・・テスト用IDが送られるメールアドレスを指定します
    Full host name(ホスト名)・・・・・・・・・・・・・・これも架空のものでいいのかも知れません
    Locality name(city)・・・・・・・・・・・・・・・・・・・市
    State name・・・・・・・・・・・・・・・・・・・・・・・・・州名と言われてもねぇ。とりあえず県名を書いときました。
    Random string・・・・・・・・・・・・・・・・・・・・・・・特に書かなくてもいいです。

    このとき秘密鍵(プライベートキー)と公開鍵のペアーが作成されます。これらを以下に示します。

     以下が秘密鍵 です。ファイル名は、例えば www.egami.co.jp であれば www_egami_co_jp-key.der になります
      Key filename: C:\weblogic\<Full host name>-key.der

     これは、公開鍵に上記情報を追加したものでベリサインなどに送られるものです
      Request filename: C:\weblogic\<Full host name>-request.pem  
     
    この画面で、VeriSignの方の Submit をクリックして、テスト用IDの申請を行います。
     

  5. 次の画面で内容の確認および連絡先の記入を行って ACCEPT をクリックすると、Processing Requestという画面が表示され30分程度でメールが届きます。ちょっとコーヒーでも飲んで待ちましょう。

  6.  
  7. さて、いよいよ WebLogic server へのインストールですが、まず上記の秘密鍵のファイルを \weblogic\myserver 配下に持っていきます。ファイル名はそのままでいいでしょう。

  8. 次にベリサインからのメールの最後にあるIDを取り出してテキストファイルとして作成します。ファイル名は、拡張子が .pem であれば勝手に付けていいようです。取り出すIDについても以下の2行に挟まれた文字をこの2行も含めてカット、ペーストでテキストファイルに張り付ければいいでしょう。このファイルは、認証機関(ベリサインなど)から受けたサーバ証明書と呼ばれるものです。
    -----BEGIN CERTIFICATE-----

    -----END CERTIFICATE-----

    最後に、\weblogic\weblogic.properties に以下の設定を行います。

    weblogic.security.ssl.enable=true     このままでいいです
    weblogic.system.SSLListenPort=7002 このままでいいです

    #weblogic.security.certificate.server=democert.pem  デモ用の3行をコメントアウトして
    #weblogic.security.key.server=demokey.pem
    #weblogic.security.certificate.authority=ca.pem

    weblogic.security.certificate.server=www_egami_co_jp.pem  ベリサインからのメールを切り出した証明書ファイルの設定と
    weblogic.security.key.server=www_egami_co_jp-key.der    秘密鍵の設定を行います
     

  9. 最後に、WebLogic server を起動します

  10. このとき、以下のメッセージが出ていればうまくいっていることになります

    Sun Jan 02 20:32:32 JST 2000:<I> <SSLListenThread> Listening on port: 7002

    確認のために、ブラウザで https://www.egami.co.jp: 7002/ とすれば、WebLogicの紹介ページが表示され Netscape なら 左下の鍵が掛かっている はずです。www.egami.co.jp は、あなたのマシンのホスト名で置き換えてください。また、httpをhttpsにしていること、ポートを7001でなく7002にしていることに注意してください。

    このとき、ベリサインに申請したときのホスト名が違っているとブラウザが注意を促します 。例えば、https://localhost:7002/ とやると以下のような画面が表示されます。

    証明書名の確認  サイト'localhost'から提出された証明書には、正しいサイト名が含まれていません。・・・

    ここで、続けるを選択すれば接続されますが、普通ならキャンセルを押されて接続を拒否されるでしょう。

 今回紹介したベリサインの証明書ですが14日間の限定版です。この証明書は何回でも取得できるとベリサインのホームページにも書かれていますが、起動の際にコンピュータの時間を元に戻すことでも対応できます。実はこれも同ホームページに書かれていることなのです。

 本格的にディジタルIDを使うことになれば、あなたのサーバマシンを正式に認証してもらうことになりますが、このために年間 \85,050 かかるようです。 128ビット対応のものもあってこちらは、年間\144,900 らしいですが、詳しくは ベリサイン社のHP を参照してください。ヘルプ なども参考になります。
 
7. TUXEDOとの接続   ↑top
 TUXEDOといってもあまりなじみがないと思いますが、これもAPサーバの一種です。BEA社によれば、WebLogicがオブジェクト指向言語(Java言語)用のAPサーバで、 TUXEDOは手続き型言語(C言語、COBOLなど)用のAPサーバという言い方をしていました。既存の基幹システムでは、このTUXEDOのトランザクション処理を使ったものがいくつかあります。WebLogicは、このような 既存システムの機能をWebから利用するような場合にも適用されます。
 ここでは、 Jolt for WebLogic という機能を使って、TUXEDOとの接続方法について考えてみます。
 
8. VisualCafe でのデバッグ     ↑top
 近年のJavaの発展は、言語自体のすばらしさもさることながら、各社から提供される統合的な開発環境が大きく貢献していると思われます。EJBやAPサーバについても開発環境、特にデバッグ環境は重要な鍵となるでしょう。今扱っている WebLogicは開発環境として、Inprise社のJBuilder3や SYMANTEC社のVisualCafe などを推奨していますが、特に VisualCafe とは特別の結びつきがあるようです。VisualCafe は現在 Version3.0ですが、1999年10月始めに提供される 3.0dでは WebLogic4.0.3と4.5に対応し、ウィザードによるEJBの枠組みの作成やデバッグ時のClientプログラムも同時に作成されます。その上、WebLogicサーバ機能をVisualCafe上で自動起動させることができ、開発したEJBの詳細なデバッグが実現可能です。

 もし評価版を手に入れることができるのであれば、ここで紹介していきたいと思います。
 
9. JSP (Java Server Pages) をかじる    ↑top
 サーブレットは、Webでのサーバサイドプログラミング技術 の1つですが、それまでのCGI+Perl言語に比べて、「マルチスレッドによる処理性能の向上」が大きな特長になっています。しかし、プログラミングの生産性の点でサーブレットがそれほど優れているとは思いません。Perlにしろ、サーブレットにしろコンテンツとコードが混在してしまうからです。コンパイルの必要なサーブレットの方がより面倒なぐらいです。

 ここで紹介するJSP(Java Server Pages)は、コンテンツの静的な部分と動的な部分をページコンパイル技法により分離するテクノロジということです。
 まずはサンプルプログラムで動作を確認してみます。

  1. weblogic.properties の編集

  2. 以下の行のコメントをはずしてください。この中で、pageCheckSeconds=60 と compileCommand= c:/java/bin/javac.exe を変更します。

    weblogic.httpd.register.*.jsp=\
           weblogic.servlet.JSPServlet
    weblogic.httpd.initArgs.*.jsp=\
           pageCheckSeconds=0,\
           packagePrefix=examples.jsp,\
           compileCommand=C:/jdk1.1.7B/bin/javac.exe ,\  <-  各自の環境に合わせてください
           workingDir=C:/weblogic/myserver/classfiles,\    <-  JSPファイルをJavaファイルに変換しコンパイルされたClassファイルが入ります
           verbose=true
     

  3. WebLogic Server を起動します

  4.  
  5. サンプルのJSPファイルを所定にディレクトリにコピーします

  6. C:\weblogic\myserver\public_html\jsp ディレクトリを作成し、 C:\weblogic\examples\jsp\ShowDate.jsp HelloWorld.jsp をコピーします。
     
  7. ブラウザでhttp://localhost:7001/jsp/ShowDate.jsp を入力すると、コンパイルのための時間を経過した後、時刻が表示されます。

  8. WebLogic Serverを立ち上げている間は、Classファイルを参照するため処理は高速です。


 今後、Java World 1999年5月号や 1999年12月号の記事について検証して行きたいと思います。
 
10. CORBA インタフェースを提供する     ↑top
 CORBA (Common Object Request Broker Architecture) は、分散オブジェクトを実現するための仕様であり、 IIOP (Internet Inter-ORB Protocol) はその通信プロトコルの1つです。ここでは、既に実現しているRMIによる分散オブジェクトプログラムをRMI over IIOP という新しい技術を用いることで、プログラムにほとんど手を加えることなく、CORBAと相互運用できることを実証してみます。内容は、Java World 1999年10月号の記事を参考にしていくつもりなのでお急ぎの方は、そちらを参照下さい。
 
 
11. いまさらCGI    ↑top
 サーブレットの解説記事は、いつもCGIの欠点から始まるのが定石になっています。でも、いままでperlでCGIをいっぱい書いてきた人は、みんなサーブレットに書き換える必要があるのでしょうか。サーバの負荷のことを考えればそうなんでしょうが、資産の有効利用ができてもいいでしょう。WebLogicでは、新規プロジェクトにはサーブレットを推奨しながら、いままで作ってきたCGI利用の道も閉ざしてはいません。ここでは、その方法を簡単に説明します。

  1. まず、Webサーバにperlをインストールしましょう。 こちら のWindows用のperlのところを参照して下さい。
  2. 次に weblogic.propertiesに以下の記述を加えて、WebLogic Serverを起動してください。

  3. weblogic.httpd.register.cgi-bin=weblogic.servlet.CGIServlet
    weblogic.httpd.initArgs.cgi-bin=\                                             <-  \ は2行にわたる場合の印です
    cgiDir=/weblogic/myserver/cgi-bin,*.pl= /bin/perl.exe,*.cgi= /bin/perl.exe   <- perl のインストール場所に合わせます
 これだけです。propertiesの内容から類推すると、実は CGIservlet なるサーブレットを介して perl で cgiファイルを実行しているようです。
  最初てこづった点は、cgiファイルはすべてcgi-binの直下におく必要があることです。
 
 
12.サーブレット再び    ↑top
 WebLogic Serverの動作確認のために、実験的にHelloWorldと表示するだけのサーブレットを動かしていますが、ここでは再度サーブレットを取り上げてみます。実は、 ディレクトリサーバ にLDAPでユーザ認証を実施するプログラムを書く必要があったため、サーブレットで作ってみたというわけです。
 
 サーブレットの構成を示していきます。
  1. サーブレットに必要なクラスのimportを宣言します。

  2. import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
     
  3. サーブレットは、HttpServletクラスを継承する形で記述されます。ここでは、クラス名をLoginとしたときの例を示します。

  4. public class Login extends HttpServlet {
     
  5. HTTPの要求はGETとPOSTがあり、これらに対応してdoGet(), doPost()というメソッドが用意されています。これをオーバライドして、自分なりの処理を組み込むことになります。いずれも、入力と出力が定義されていて、ここでは、request, response としています。

  6. public void doGet(HttpServletRequest request, HttpServletResponse response)
                                                            throws ServletException, java.io.IOException {

    public void doPost(HttpServletRequest request, HttpServletResponse response)
                                                              throws ServletException, java.io.IOException {
     

  7. サーブレットでのデータ入力についてですが、GET要求では、http://hostname/servletName?uid=egami3 といった形で、? 以下に受け渡すデータが入力されます。一方、POST要求では、<FORM>タグの中で <input type=text name=uid>といった形で、テキスト領域に書かれた内容がuidという名前で送られます。いずれの場合も、データの取り出しには、getParameter() メソッドを用いて以下のように書きます。

  8. String uid = request.getParameter("uid")
     
  9. 出力つまりHTML言語による画面への表示方法は以下のようになります。

  10. response.setHeader("Exprires", "Tues, 01 Jan 1980 00:00:00 GMT");  // ブラウザのキャッシュを使わせないための記述です

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("<html><head>");
    out.println("<title>ログイン</title>");
    out.println("</head><body>");
    out.println("<form method=POST action=\"Login\">");   // Loginはサーブレット名
    out.println("<table><tr><td>ユーザID:</td>");
    out.println("<td><input type=text name=userid></td></tr>");
    out.println("<tr><td>パスワード:</td>");
    out.println("<td><input type=password name=password></td></tr>");
    out.println("</table><br>");
    out.println("<input type=submit value=\"ログイン\">"); // ログインはボタンの表示文字
    out.println("</form></body></html>");
    out.flush()

13. サーブレットのデプロイ(配備)    ↑top
 サーブレット開発では、バグ改修や仕様変更によりプログラム修正が発生しますが、これを配備するのにWebLogic Serverを再立ち上げすれば、もちろん反映されますが、propertiesファイルの定義により、変更時点で反映されるしくみがあります。以下にその方法を示します。

  weblogic.httpd.servlet.classpath=C:/weblogic/myserver/servletclasses
   weblogic.httpd.servlet.reloadCheckSecs=1


 この2行を設定するだけで、C:\weblogic\myserver\servletclasses配下のクラスは、上書きした後のアクセスでそれが反映されます。ここで、注意することは、webLogic Server起動時に、このフォルダを重複してクラスパス指定してはいけないということです。私の場合、startWeblogic.cmd の中で、C:\weblogic\myserver\servletclassesをクラスパスに追加していたため、この機能が有効に働きませんでした。
   
14. プロキシの設定    ↑top
 WebLogicServer5.1におけるプロキシの設定を以下に示します。

  以下の内容を、weblogic.properties に設定します。 http://10.144.49.171:7001  の部分を、プロキシ先のWebサーバに合せる必要があります。

  
    # HttpProxyServlet takes an HTTP request, redirects it to another HTTP
    # server, and sends the response to the requesting browser

    weblogic.httpd.register.proxy=weblogic.t3.srvr.HttpProxyServlet
    # RedirectURL initArg specifies the prefix to be applied to the  proxied HTTP request
    weblogic.httpd.initArgs.proxy=redirectURL=http://192.168.0.2:7001

    weblogic.httpd.defaultServlet=proxy


 ここでは、デフォールトサーブレットを file から proxyに変更することになるのですが、これだけを実施すると *.html  *.jpg  *.gif といった通常のWebサーバではあたりまえに表示されるファイルが見つけられなくなってしまいます。実は、デフォールトサーブレットというのは、properteisファイルに定義されていない名前が出てきたときに一律呼ばれるサーブレットで、もともとは file (ファイルサーブレット)が呼ばれることになっています。このファイルサーブレットは、一般のWebサーバが扱うファイル( *.html  *.jpg  *.gif などを含む)を表示する機能を持っていますので、結果として定義なしにこれらのファイルを表示することになるのです。
 今回は、これをproxyサーブレットに変更したのですから、これらのファイルを明示的にproperteisファイルに定義する必要がでてくるのです。ここでは、*.html *.jpg *.gifを表示するための定義を示しておきます。

     weblogic.httpd.register.*.html=weblogic.servlet.FileServlet
     weblogic.httpd.register.*.jpg=weblogic.servlet.FileServlet
     weblogic.httpd.register.*.gif=weblogic.servlet.FileServlet

15. URL書き換えの設定    ↑top
 サーブレットで次の機能に連携する場合、以下のようにGETまたはPOST要求をHTTPとして埋め込むようプログラミングしますが、i-modeのようにcookieによるセッショントラッキングが実現できない場合は、URL書き換えという手段を用います。 これには encodeURL()というメソッドを使います。
 【元のプログラム】       out.println("<form method=POST action=\"Login\">");  
 【変更後のプログラム】   out.println("<form method=POST action=\"" + response.encodeURL("Login") + "\">");
                                       ( response は、HttpServletResponse型のオブジェクト)

   この処理を有効にするために、以下の内容を weblogic.properties に設定します
     weblogic.httpd.session.URLRewriting.enable=true


16. 参考文献    ↑top
 EJBに限らず役に立つと思われる書籍を紹介しています。本文からも参照できるようにしていきますが、一覧は こちら でまとめています。


[HOME] / [Java] / [Perl5] / [Palm(GCC)] / [Palm(CodeWarrior)] / [本の紹介]

このページにご意見のある方は、egami@ee.e-mansion.com までお願い致します。