我正在嘗試集成SAIF插件來攔截我的struts動作。我從 http://struts.sourceforge.net/saif/index.htmlStruts Action Strokes 1.3的動作調用框架
學習我已經寫的配置是這樣的: struts-config.xml中
<plug-in className="net.sf.struts.saif.SAIFPlugin">
<set-property property="interceptor-config" value="/WEB-INF/interceptor-config.xml" />
</plug-in>
攔截-config.xml中
<interceptor-config>
<interceptor name="componentInterceptor" type="net.sf.struts.saif.ComponentInterceptor"/>
<interceptor name="testInterceptor" type="net.sf.struts.saif.TestInterceptor"/>
<default-interceptors>
<interceptor name="componentInterceptor"/>
</default-interceptors>
<action type="org.apache.struts.webapp.example.EditRegistrationAction">
<interceptor name="testInterceptor"/>
</action>
</interceptor-config>
我有錯誤是這樣的:
javax.servlet.UnavailableException: Specified RequestProcessor not compatible with saif.
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:402)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3996)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4266)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
你能幫我解決這個問題 ?
你的意思是創建新的SAIF插件擴展並刪除拋出新的ServletException(味精); ? 我已經嘗試這種方式,但該方法不攔截 – 2010-10-24 23:09:13
SAIF插件拋出異常,因爲它希望你的應用程序的請求處理器是類型SAIFRequestProcessor的,SAIFTilesRequestProcessor或它們(之一的孩子是什麼上面的測試做)。你的請求處理器不是這種類型的(也許你有一個自定義的; struts-config.xml中的任何標記?)。你不會擴展SAIFPlugin類並刪除「throw new ServletException(msg)」;那有一個目的。如果你刪除它,你只會沉默異常,這並不意味着該插件將在事後。 –
2010-10-25 19:51:00