2014-09-29 44 views
0

我正在使用struts-layout,struts-taglib1.3.8.jar和struts2.application工作正常。 但是,由於struts2已經有了標籤庫,所以我刪除了struts-taglib1.3.8.jar並將struts-layout從1.2升級到了1.4(這說明與struts2兼容)。我開始使用佈局策略時發生異常。struts-layout1.4在使用struts2時,發現messageresource.java沒有找到class def

我反編譯佈局jar。它包含一個類LayoutUtils.java,它打電話

protected static MessageResources messages = MessageResources.getMessageResources("org.apache.struts.taglib.html.LocalStrings"); 

它引發下面的異常。

Caused by: java.lang.NoClassDefFoundError: org/apache/struts/util/MessageResources at fr.improve.struts.taglib.layout.util.LayoutUtils.<clinit>(LayoutUtils.java:48) at fr.improve.struts.taglib.layout.PolicyTag.doStartTag(PolicyTag.java:25) at jsp_servlet._common.__appmenu._jspService(__appmenu.java:269) at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:416) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:326) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:527) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:447) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:184) at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:80) ... 95 more Caused by: java.lang.ClassNotFoundException: org.apache.struts.util.MessageResources at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253) at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177) at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:37) ... 113 more

回答

0

我看不出它說,這是在Struts 2

在任何情況下兼容,在關閉的機會,它實際上是,它仍然依賴於Struts的1類,例如,

<dependency> 
    <groupId>struts</groupId> 
    <artifactId>struts</artifactId> 
    <version>1.2.9</version> 
</dependency> 

至少你需要包括Struts 1核心庫。

以下是事情:Struts 2以與Struts 1完全不同的方式查找它的消息資源,以不同的方式向視圖層展示值(雖然它們仍然可以通過JSP EL訪問)等等。儘管如此,我很可能完全錯過了Struts 2的兼容性部分。

+0

感謝評論,我主要需要layout-policy.there沒有辦法我可以使用struts2與struts2佈局(我不想從struts 1或taglib放任何依賴)。我創建了我自己的tld和標籤處理程序,作爲佈局並實施該策略。 – tataByeBye 2014-09-30 20:11:03

相關問題