私の歴史と今

振り返ると恥ずかしくなるのが私の歴史。だけどそのときは真面目に書いていた訳でね。そんな今の私を書いていく。

Oracle Application Server

サーブレットクラス名の指定による起動

ハードリプレースの際、Oracle Application Server を 9.0.3 → 10.1.3.4 にバージョンアップしたんだけど、10.1.3.4はデフォルトの状態だと、クラス名を指定してサーブレットを起動できない。Tomcatと同じで、セキュリティ上の問題があって、デフォルトではコメント状態になっているんだろうと思って、設定ファイルを「/server」でgrepしたんだけど、それらしき設定がなく。。。ほんと困った。
結論からいうと、起動オプションのシステムプロパティに -Dhttp.webdir.enable=true をつけてやればいい。
公式Oracle Containers for J2EE構成および管理ガイドには、以下のように書いてある。

http.webdir.enable=
このプロパティは、OC4Jインスタンス内のすべてのサーブレットについて、サーブレット・クラス名の起動を有効または無効にします。

trueに設定した場合、OC4Jインスタンスで稼働しているサーブレットはデフォルトでクラス名により起動できます。falseに設定した場合、サーブレットはクラス名により起動できません。デフォルトはfalseです。

Webアプリケーションごとにこの機能を無効にするには、このプロパティをtrueに設定して、サーブレット・クラス名の起動を許可しない各Webアプリケーションのorion-web.xmlディスクリプタと設定します。

orion-web.xmlservlet-webdirに設定された値は、ORACLE_HOME/j2ee/instance/config/global-web-applicationでこの属性に設定されたデフォルト値、すなわちservlet-webdir="/servlet"に優先します。

楽だと思ってたのに、いろいろ躓く〜〜。