- PR -

weblogicのServletContext.getRealPath

1
投稿者投稿内容
迷い人>w<b
会議室デビュー日: 2006/08/27
投稿数: 2
投稿日時: 2006-08-27 19:51
weblogicのServletContext.getRealPath

いつもお世話になっております。
warファイルをweblogicにデプロイすると
ServletContext.getRealPath("XXXXX")で
nullが返ってきてしまいます。
使用しているWeblogicのバージョンは「Weblogic 9.2」です。

Strutsを使用しているので、上記の問題でweb.xmlのなかで記述している
「/WEB-INF/struts-config.xml」ファイルを取得しようとして
アプリケーション起動時に落ちてしまいます・・・

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
⇒ここ <param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>


1.原因はなんでしょうか?
色々Webで調べたところWeblogicは
「warファイルをディレクトリに構造展開せずに実行するから。」
*ただ、weblogic9.0を使っていたときは問題なかったのですが、
9.2に変更してから上記の問題が発生しました。

2.どのような対応方法がありますか?


どなたかご教授よろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-08-27 21:56
war からデプロイしている場合などは null を返す、とありますので仕様通りの挙動ですね。
http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)

昔からそのような挙動だったと記憶していますので WLS9.0 でも同様ではないでしょうか?
迷い人>w<b
会議室デビュー日: 2006/08/27
投稿数: 2
投稿日時: 2006-08-28 23:13
インギ様

ご回答ありがとうございます。
内容確認しました、確かにAPIにwarからデプロイされた
場合はnullを返す旨の内容が記述されていますね。

となるとwarからデプロイすることを考慮すると、
getRealPathメソッドを使わずに機能を実現することを
考慮する必要がありますね。

*9.0でなぜうまく挙動しているかはいまだ不明です・・・
 何かわかりましたら、ご報告させていただきたいとおもいます。

ご回答まことにありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)