すべてのリクエストを処理するためのデフォルトのサーブレットを持つweb.xmlを持つj2eeアプリケーションがあります。
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>gr.comp.pjx.controller.FrontController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
奇妙な動作は、アプリケーションのコンテキストがロードされたときです。したがって、netbeansがロードさhttp://localhost:8080/my_application/
れると、サーブレットクラス(つまりgr.comp.pjx.controller.FrontController
)がリクエストをキャッチしないことがわかります。これは、Tomcat 6を使用している場合には当てはまりませんでした。これに加えて、ページのURLを手動で入力すると、たとえばhttp://localhost:8080/my_application/login.jsp
同じサーブレットクラスが通常どおり要求をキャッチします。
誰かが同様の問題を抱えていますか?
空の文字列を使用してサーブレットマッピングを追加することでこの問題を解決し、アプリケーションのコンテキストルート(つまりhttp:// localhost / my_application)をgr.comp.pjx.controller.FrontControllerで提供できるようにしました。
<servlet>
<servlet-name>controller1</servlet-name>
<servlet-class>gr.eworx.pjx.controller.FrontController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller1</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
そのため、このサーブレットマッピングは、デフォルトのサーブレットを使用した既存のサーブレットマッピングの直前に追加されました。これで、すべてのリクエストをgr.eworx.pjx.controller.FrontControllerで処理できるようになりました。ただし、回答されていない質問は、Tomcat> 6でアプリケーションのコンテキストルートを提供するために「/」URLパターンを使用できない理由です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加