因此,根据我的阅读,这应该非常简单。我在创建application.xml文件时遵循了类似的设置。
<application>
<display-name>test</display-name>
<module>
<web>
<web-uri>foo.war</web-uri>
<context-root>foo</context-root>
</web>
</module>
<module>
<web>
<web-uri>bar.war</web-uri>
<context-root>bar</context-root>
</web>
</module>
</application>
我已经在这个JVM中单独测试了这两个应用程序并且它们运行良好...但是当放在一起我得到struts 2错误(两个应用程序都是使用struts 2框架创建的),而我是不确定缺少什么。错误如下
[Servlet Error]-[Filter [struts2]: could not be initialized]: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - wsjar:file:<my filepath>/WEB-INF/lib/struts2-core-2.0.14.jar!/struts-default.xml:30:72
有什么想法吗?
*编辑 所以我一直在读这个错误可能是因为你在WEB-INF / lib目录中有冲突的struts2 jar(或者它们被加载到两个地方)。虽然我认为这不是一个问题,因为这些罐子在不同的WAR中。
答案 0 :(得分:2)
最简单的方法可能是更改类加载器策略:来自控制台applications->enterprise applications->your app->WAR class loader policy->Class loader for each WAR file in application
。但是试着确保在WEB-INF / lib目录中只有一组给定的罐子。您也可以使用共享库。但如果问题是由共享库引起的,则可以更改类加载器顺序applications->enterprise applications->your app->class loader order->Classes loaded with local class loader first (parent last)
。
答案 1 :(得分:0)
如果您怀疑是冲突,请启用详细的类加载以查看正在加载的内容。确保您有多个类加载器(这是默认设置)。
查看详细的类加载应告诉您WAS运行时从何处加载所需的类。
HTH
Manglu