0

私は、jetty サーバーで正常に動作する struts2-spring アプリケーションを持っていますが、それを WAS 6 に移行しようとすると、デコレータ (サイトメッシュ) が適用されません。サーバー ログにエラーは表示されません。これは既知の問題ですか? 私のweb.xmlは次のようになります

<filter>
    <filter-name>action2-cleanup</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<filter>
    <filter-name>action2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
    <filter-name>action2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>action2-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
4

1 に答える 1

0

問題は、websphere が内部的<url-pattern>/*</url-pattern>に何かに使用する URL パターンです。解決策は、次のような新しいものに変更することです。

<filter>
    <filter-name>action2-cleanup</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<filter>
    <filter-name>action2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
        <filter-name>action2</filter-name>
        <url-pattern>/app</url-pattern>
</filter-mapping>
<filter-mapping>
        <filter-name>action2-cleanup</filter-name>
        <url-pattern>/app</url-pattern>
</filter-mapping>
<filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/app</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>REQUEST</dispatcher>
</filter-mapping>

そのパスの下にアプリケーションファイルを配置します

于 2010-05-17T22:55:37.113 に答える