Eclipse で作成した Struts2 + Spring + hibernate プロジェクトを Tomcat 単体で動かそうとしているのですが上手く行きません。

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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/05/31 11:02:36
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 moon 7 4 0 2010-05-31 10:54:46
  • id:jazzmine
    その他補足情報です。

    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
  • id:t-wata
    > org.apache.jasper.JasperException の 500 エラーになります。

    JSPのコンパイルでのエラーですね。
    eclipse上では動いているということなので、多分tomcat上に移したときに必要なライブラリが足りなくてエラーになっていると思います。
    とりあえずはeclipseのプロジェクトが参照しているライブラリすべてを、WEB-INF/libに放り込んでみてはどうですか?
  • id:jazzmine
    >t-wataさん

    コメントありがとうございます。

    500 エラーは試しに web.xml 内の filter タグを消したのが原因だと思います。

    ライブラリは確認してみましたが、Eclipse 上のは全部移されていました。Eclipse で他に参照しているのは Tomcat 内のライブラリと jre 内のライブラリで、Tomcat は Tomcat 起動の時も参照しているはずなのでそのままにし、jre 内のライブラリを試しにコピーしておきましたが、結果は変わりませんでした。
  • id:jazzmine
    ご参考までに、struts.xml の
    <constant name="struts.devMode" value="true"/>

    <constant name="struts.devMode" value="false"/>
    に変更したら上手くいきました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません