2

Java Web アプリケーションを OC4J から WebLogic 11g に移行しています。アプリケーションには、次のサーブレット マッピングが含まれています。

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*_dyn.txt</url-pattern>
</servlet-mapping>

これが OC4J で機能する理由は 2 つあります。
- サーブレット名 "jsp" は自動的に JSP サーブレットにマップされ
ます。

以下を追加することで、WebLogic でサーブレット名「jsp」を JSP サーブレットに明示的にマップできることを発見しました。

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>weblogic.servlet.JSPServlet</servlet-class>
</servlet>

これは、/dyn/* などの標準の URL パターンを使用した場合に機能しますが、OC4J で受け入れられた非標準の URL パターン *_dyn.txt を使用した場合には機能しません。

代わりに Tuckey の UrlRewriteFilter を使用してマップしようとしましたが、これにより JSPServlet クラスで例外が発生します。

私の UrlRewriteFilter ルールは次のようになります。

<rule match-type="wildcard">
    <from>**/*_dyn.*</from>
    <run class="weblogic.servlet.JSPServlet" method="service" />
</rule>

私が得る例外はこれです:

Error 500--Internal Server Error 
[AddToMap: pattern=/bla/test_dyn.txt class=jsp_servlet._bla.__test_dyn_txt]
    at weblogic.servlet.JSPServlet.service(JSPServlet.java:220)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.tuckey.web.filters.urlrewrite.Run.invokeRunMethod(Run.java:416)

目標を達成する方法を誰か教えてもらえますか?

ありがとう
マーティン

4

0 に答える 0