- Xerces XML パーサーを取得してインストールしてください (Sunのリファレンス実装では問題が発生することがレポートされています)。
WebLogicのシステムパスに xerces.jar を配置してください。
- Strutsのバイナリディストリビューションを取得して展開してください
(この文章は以後、Strutsが
c:\jakarta-strutsに配置されていると仮定しています)。
- weblogic.properties に構成したいStruts Webアプリケーションのエントリーを追加してください。
例えばstruts-exampleアプリケーションを動作させるためには、以下の記述を weblogic.properties に追加します:
weblogic.httpd.webApp.strutsexample=
c:/jakarta-struts/webapps/struts-example.war
- struts.jarや他のアプリケーションが必要とするクラスへの参照は自動的に設定されるため、
WebLogicクラスパスに追加する必要はありません
(展開してしまったWebアーカイブを配備しない限り - 以下を参照して下さい)。
- WebLogicサーバーを起動してWebブラウザからStrutsアプリケーションを参照してください
例えばステップ3で登録したサンプルアプリケーションを参照するためには以下のアドレスにアクセスします:
http://localhost:7001/strutsexample
- このサンプルアプリケーションはクラスパスに置かれるStrutsの詳細情報を記述したリソースファイル
ApplicationResources.properties に依存します。
しかしWebLogicは *.class ファイルのみをアーカイブから取り出すのでこのファイルは検出されず、
最初にアクセスしたときには何かが足りないという以下のようなエラーとなります:
javax.servlet.ServletException: runtime failure in custom tag 'message'
ステップ6とステップ7はこのアプリケーションや他の ApplicationResources.properties
を利用している全てのアプリケーションで必要となります。
- ApplicationResources.properties を *.war ファイルから取り出し、WebLogicがアプリケーション内に作成する
それぞれのパッケージの中の _tmp_war_ ディレクトリに手動でコピーします。
struts-exampleを例にあげると以下のディレクトリとなります:
c:\jakarta-struts\webapps\WEB-INF\_tmp_war_strutsexample
- WebLogicを再起動してください。以下のアドレスからアプリケーションを動作させることが出来るはずです:
http://localhost:7001/strutsexample
ここまでで説明した内容は *.war ファイルとして配備されたアプリケーションの導入方法です。
展開されたままのWebアプリケーションを登録する為には struts.jar と
/WEB-INF/classes への参照を WebLogic クラスパスに追加しなくてはなりません。
ですので、warファイルとしてWeblogicに配備する方法を推奨します。
しかし、weblogic.propertiesを以下のように編集することによって、同じサンプルアプリケーションを
展開された形で配備することが可能です(warの内容がが webapps/struts-example に展開されたと仮定します):
weblogic.httpd.webApp.strutsexample=
c:/jakarta-struts/webapps/struts-example/
その後に、更新した WebLogic クラスパスにて WebLogic を起動します。以下はその例です:
c:\jdk1.3\bin\java -ms16m -mx64m
-classpath c:\weblogic\lib\weblogic510sp8boot.jar;
推奨する追加設定
- ServletとJSPのリロード機能はOFFにしておくべきです。
第1にパフォーマンスの低下を招きます。JSPの数、リクエストの量、 設定の量に比例してサーバーの速度は低下します。
第2にJSPとServletのリロードはさまざまなWeblogicのクラスローダーの問題を引き起こします。
これは調査、再現が難しく、HTTPセッションの切断も招きます。
- セッショントラッキングにクッキーが使用される場合には
JSESSIONIDを、
URLベースの場合には jsessionid を、sessionid の名前として設定してください。
(更に、セッションIDをクエリパラメータとしてエンコードしてしまうBEA独自実装(J2EE-非準拠)
によって引き起こされる、URLベースのセッションに関わる問題も存在します。
特に <bean:include> はURLベースのセッションでは現状動作しません。
しかし、正しいセッション名を使用することによって少なくともいくつかの問題は解決できます。)
weblogic.properties内のJSP-Servletの登録方法を最大限に J2EE に準拠しつつ(/または)
最大限のパフォーマンスが出るように設定します。
JSP-Servletはいくつかの初期化パラメータをサポートしていて、
より良いパフォーマンスを得たり、最大限に仕様に準拠させたり、(下記のように)デバッグをし易くするようにカスタマイズすることができます:
weblogic.httpd.initArgs.*.jsp=\
pageCheckSeconds=-1,\
setEmptyStrings=false,\
compileCommand=./_jspCompiler_.cmd,\
workingDir=/weblogic/myserver/tmp_classfiles,\
keepgenerated=true,\
debug=true,\
verbose=true
上記の例ではバッチファイル (_jspCompiler_.cmd) によって、劇的に起動時間の早い jikes に処理を依頼しています。
(jikesはIBMの公開しているJavaコンパイラで約3倍javacよりも速いといわれています)
このバッチファイルには以下の1行のみを記述します:
@jikes -g -nowarn %*
The next configuration could be used when all tests have been done and speed is the
major concern ...
weblogic.httpd.initArgs.*.jsp=\
pageCheckSeconds=-1,\
setEmptyStrings=false,\
compileCommand=./_jspCompiler_.cmd,\
workingDir=/weblogic/myserver/tmp_classfiles,\
keepgenerated=false,\
debug=false,\
verbose=false
... 下記バッチファイルとともに ...
@jikes -O -nowarn %*
Weblogicはこれに似た設定を web.xml の中の <context-params> でサポートしています。
(詳細な内容についてはBEAWebサイトの最新のドキュメントを参照して下さい)
Struts開発者メーリングリスト内のMore
fixes for WLS 5.1 SP8 に、追加情報がありますので参照してください。
- 著者: Robert Hayden
- 著者: Wong Kok Kai
- 著者: Matthias Kerkhoff
インストールへ戻る