Eclipse から Tomcat を起動した場合は問題なく動いていました。
原因がわからずに困っているのですが、どう言う症状かを言いますと
下記のようなブラウザ上での呼び出しに対して
http://localhost:8080/アプリ名/アクション名/
下記のような404エラーになってしまいます。
The requested resource () is not available.
括弧内が空なのが何故だか判明できません。
色々調べた結果、一番怪しい Tomcat のログは
2010/05/30 23:36:28 org.apache.catalina.core.StandardContext start
致命的: Error filterStart
2010/05/30 23:36:28 org.apache.catalina.core.StandardContext start
致命的: 以前のエラーのためにコンテキストの起動が失敗しました [/アプリ名]
のところで、Eclipse -> Tomcat 起動のログには出力されないエラーです。
文字数制限があるのでその他情報はコメント欄に記載させていただきます。
宜しくお願い致します。m(_ _)m
コメント(4件)
commons-fileupload-1.2.1.jar を lib 直下に置くこと、
server.xml にある Context path 記述を外すこと、また、記述を加えること
等を行ないましたが、変わりありませんでした。
また、web.xml の filter タグ内、filter-class を
org.apache.struts2.dispatcher.FilterDispatcher
と記載してあるのですが、Struts2 のチュートリアルサイトにあったのを真似て
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
にしましたが何も変わらず、また、
org.apache.struts2.dispatcher.FilterDispatc
と中途半端な値にしても変わらず、空の値にしても全く変わりありませんでした。
filter タグを全部消すとエラーログは出ませんが、ブラウザ上で
org.apache.jasper.JasperException の 500 エラーになります。
唯一先に行けたのは struts.xml の
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true"/>
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.ui.theme" value="simple" />
<include file="struts-default.xml" />
と言うを記述を
<constant name="sstruts.enable.DynamicMethodInvocation" value="false" />
<constant name="sstruts.devMode" value="true"/>
<constant name="sstruts.objectFactory" value="spring" />
<constant name="sstruts.ui.theme" value="simple" />
<include file="sstruts-default.xml" />
とした時です(先頭に「s」と加えて挙動を試しました)。
致命的: Error filterStart と言うエラーは無く、セッションが絡むサイトのため、ログイン画面がやっと表示されましたがログインボタンを押すと
URL は http://localhost:8080/アプリ名/login.jsp と表示され、
The requested resource (/アプリ名/login.jsp) is not available.
と言う 404 エラーとなります。Struts としては全く動いていないようです。
おかしいのはその時のエラーが
情報: Unable to locate configuration files of the name sstruts-default.xml, skipping
となってしまい、constant のところはエラーにはならないことと、その数行前に
情報: Parsing configuration file [struts-default.xml]
と言うログがあることです。プロジェクト上、他の場所に struts-default.xml の記述はしていません。
ちなみに先頭に「s」を付けた箇所を全部外した場合も先頭に「s」を付けた場合と同様の症状になります。
長文で恐縮ですが、どなたか手掛かりになるようなアドバイスいただければ大変助かります。
ちなみに下記が各種バージョンです。
Tomcat 6.0.18
struts-2.0.11.2
Spring 1.0.2
hibernate3.3.1
宜しくお願い致します。m(_ _)m
JSPのコンパイルでのエラーですね。
eclipse上では動いているということなので、多分tomcat上に移したときに必要なライブラリが足りなくてエラーになっていると思います。
とりあえずはeclipseのプロジェクトが参照しているライブラリすべてを、WEB-INF/libに放り込んでみてはどうですか?
コメントありがとうございます。
500 エラーは試しに web.xml 内の filter タグを消したのが原因だと思います。
ライブラリは確認してみましたが、Eclipse 上のは全部移されていました。Eclipse で他に参照しているのは Tomcat 内のライブラリと jre 内のライブラリで、Tomcat は Tomcat 起動の時も参照しているはずなのでそのままにし、jre 内のライブラリを試しにコピーしておきましたが、結果は変わりませんでした。
<constant name="struts.devMode" value="true"/>
を
<constant name="struts.devMode" value="false"/>
に変更したら上手くいきました。