GlassFish V2 にて Teeda 稼動検証

未だ動かす事は出来ないが現在分かっている分だけメモ。アプリケーションはteeda-html-example-1.0.12.zipを使用した。

sun-web.xmlの作成

$TeedaApp/WEB-INF/sun-web.xmlを作成。内容は下記の通り

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.//DTD
Application Server 9.0 Servlet 2.5//EN'
'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'>
<sun-web-app>
<class-loader delegate="false"/>
</sun-web-app>

<class-loader delegate="false"/>と記述する事でクラスのロード順はアプリケーションに内包されたライブラリが優先して読み込まれるようになる。

<component class="org.seasar.teeda.extension.html.impl.TeedaXMLReaderFactory$STRICT"/>

teedaCustomize.diconに<component class="org.seasar.teeda.extension.html.impl.TeedaXMLReaderFactory$STRICT"/>を追加。

env.txt

Hotデプロイのままでもいいけど意味がないのでCoolデプロイになるように記述する。見た目すぐわかるように内容は

cool

とした。

アプリケーションの起動と表示

GlassFish V2のdomains/domain1/autodeployに配置。GlassFish V2を起動。teeda-html-example-1.0.12はエラーなく読み込まれデプロイが完了した。

http://localhost:8080/teeda-html-example/view/start/index.htmlにアクセスするがエラーとなる。エラー内容は内部500エラーで

javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20

とブラウザ上にエラー表示。GlassFish V2のコンソールは無限ループに陥り延々とメッセージが表示され続ける。やむなく強制終了。

対処方法を探すためSun Java SystemApplicationServer 9.1 Administration Referenceを参照。domain.xmlの要素<web-container>の属性dispatchermax-depthでネストの深さを指定すれば良いと記述されているが、コンソールの無限ループを見る限り無理と思われる。

リクエスト無限ループの原因を究明しなければ。GlassFish V2での起動への道のりはなかなか険しい orz

追記その1

お昼休みに再度チャレンジ。エラー内容は変わらないがコンソールで表示される無限ループのエラーメッセージは出なくなった。どうやら出ないエラー状態が正常なエラーのよう。正常なエラーって何だか変な日本語…。