struts-layout1.4与struts2一起使用时,找不到messageresource.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

我使用的是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 = 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和标记处理程序作为布局并实现了策略。