strutsで、定義していないActionのURL「~.do」でアクセスすると、

Tomcatで500エラーと表示されてしまい、

例外
javax.servlet.ServletException: No action config found for the specified url.
(省略)

原因
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
(省略)

などとスタックがトレースされてしまいます。
もちろん、アクションの拡張子でない「jsp」などの場合は、存在しないURLを打つと
404エラーとなりますが、strutsのアクションでも404にするにはどうすればよいのでしょうか。

回答の条件
  • 1人3回まで
  • 登録:2008/11/30 20:13:37
  • 終了:2008/12/02 21:29:08

回答(1件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012008/12/01 11:43:59

逃げ的な発想になりますが web.xmlを設定してエラーページに飛ばすのはいかが?

<error-page>
   <exception-type>javax.servlet.ServletException</exception-type>
   <location>/hoge/hoge.html</location>
</error-page>
id:kyoko55

web.xmlで思い出しましたが、参考書などで見かけるような

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

で、拡張子.doの全てをstrutsに結び付けているのが問題ですね。

ワイルドカードでなく、定義済みのURLの数だけ、<url-mapping>タグを定義することで自己解決しました。

2008/12/02 21:26:46

コメントはまだありません

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません