struts-layout1.4与struts2一起使用时,找不到messageresource.java的类定义
我使用的是struts布局,struts-taglib1.3.8.jar,struts2.application运行良好。 但是,由于struts2已经有了taglibs,所以我删除了struts-taglib1.3.8.jar,并将struts布局从1.2升级到1.4,即与struts2兼容。在我使用布局策略时,我开始出现以下异常 我反编译了布局jar。它包含一个类LayoutUtils.java,用于调用struts-layout1.4与struts2一起使用时,找不到messageresource.java的类定义,struts2,struts,Struts2,Struts,我使用的是struts布局,struts-taglib1.3.8.jar,struts2.application运行良好。 但是,由于struts2已经有了taglibs,所以我删除了struts-taglib1.3.8.jar,并将struts布局从1.2升级到1.4,即与struts2兼容。在我使用布局策略时,我开始出现以下异常 我反编译了布局jar。它包含一个类LayoutUtils.java,用于调用 protected static MessageResources messages
protected static MessageResources messages = MessageResources.getMessageResources("org.apache.struts.taglib.html.LocalStrings");
它抛出以下异常
原因:java.lang.NoClassDefFoundError:org/apache/struts/util/MessageResources
位于fr.improve.struts.taglib.layout.util.LayoutUtils.LayoutUtils.java:48
位于fr.improve.struts.taglib.layout.PolicyTag.doStartTagPolicyTag.java:25
在jsp_servlet.\u common.\u appmenu.\u jspService\u appmenu.java:269
位于weblogic.servlet.jsp.JspBase.serviceJspBase.java:34
位于weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.runStubSecurityHelper.java:227
位于weblogic.servlet.internal.StubSecurityHelper.invokeServletStubSecurityHelper.java:125
位于weblogic.servlet.internal.ServletStubImpl.executeServletStubImpl.java:300
位于weblogic.servlet.internal.ServletStubImpl.onAddToMapExceptionServletStubImpl.java:416
位于weblogic.servlet.internal.ServletStubImpl.executeServletStubImpl.java:326
位于weblogic.servlet.internal.TailFilter.doFilterTailFilter.java:26
位于weblogic.servlet.internal.FilterChainImpl.doFilterFilterChainImpl.java:56
位于org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter.dofilterstrutspreadexecutefilter.java:96
位于weblogic.servlet.internal.FilterChainImpl.doFilterFilterChainImpl.java:56
位于weblogic.servlet.internal.RequestDispatcherImpl.invokeServletRequestDispatcherImpl.java:527
位于weblogic.servlet.internal.RequestDispatcherImpl.includeRequestDispatcherImpl.java:447
位于weblogic.servlet.jsp.PageContextImpl.includePageContextImpl.java:163
位于weblogic.servlet.jsp.PageContextImpl.includePageContextImpl.java:184
位于org.apache.tiles.jsp.context.JspTilesRequestContext.includeJspTilesRequestContext.java:80
... 95多
原因:java.lang.ClassNotFoundException:org.apache.struts.util.MessageResources
在weblogic.utils.classloaders.GenericClassLoader.findLocalClassGenericClassLoader.java:280
在weblogic.utils.classloaders.GenericClassLoader.findClassGenericClassLoader.java:253
在weblogic.utils.classloaders.ChangeAwareClassLoader.findClassChangeAwareClassLoader.java:56
位于java.lang.ClassLoader.LoadClassLoader.java:307
位于java.lang.ClassLoader.LoadClassLoader.java:248
在weblogic.utils.classloaders.GenericClassLoader.loadClassGenericClassLoader.java:177
在weblogic.utils.classloaders.ChangeAwareClassLoader.loadClassChangeAwareClassLoader.java:37
... 113更多
我看不出它在哪里说它与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的兼容性部分。谢谢您的评论,我主要需要布局策略。我无法将Struts布局与Struts 2结合使用。我不想对Struts 1或taglib产生任何依赖关系。我创建了自己的tld和标记处理程序作为布局并实现了策略。