RAD 中的 Struts2 引发错误 - xwork 已被 bean 加载
我正在使用 RAD 7.0 来开发 Struts2 应用程序。当我在 websphere 6.1 上的 RAD 中运行 Web 应用程序时,出现以下错误:
无法初始化]:无法加载bean:类型: 类:com.opensymphony.xwork2.ObjectFactory - bean - wsjar:文件:/C:/workspace_test/Jars/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72 在 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:208) .... 更多 原因:Bean 类型类 名为 xwork 的 com.opensymphony.xwork2.ObjectFactory 已经 已被 bean 加载 - wsjar:文件:/C:/workspace_test/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/Struts2Demo/WEB-INF/lib/struts2-core-2.0.11.2.jar!/struts-default .xml:30:72 - bean - wsjar:文件:/C:/workspace_test/Jars/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72 在 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:193) ... 33 更多
据我了解,这是由于 2 个 struts2 jar 副本所致。让我解释一下我是如何在 RAD 环境中配置我的 Web 项目的。
我有一个名为“Struts2Demo”的 Web 项目。还有一个名为“JARS”的单独项目,其中包含所有必需的 jar。
Struts2Demo Web 项目所需的所有 jar 均使用引用“JARS”项目的“J2EE 模块依赖项 - Web 库”进行配置。
因此,RAD 在加载 Web 应用程序时会从“JARS”项目以及 Eclipse 临时文件夹“/C:/workspace_test/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/Struts2Demo 加载 jar 文件” /WEB-INF/lib/”,因此出现错误。
所以,我的问题是除了将所需的 jar 放入 WEB-INF/lib 之外,还有什么方法可以修复此配置
I am using RAD 7.0 for developing Struts2 app. When I run the web app inside RAD on websphere 6.1, I get following error:
could not be initialized]: Unable to load bean: type:
class:com.opensymphony.xwork2.ObjectFactory - bean -
wsjar:file:/C:/workspace_test/Jars/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72
at
com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:208)
.... more Caused by: Bean type class
com.opensymphony.xwork2.ObjectFactory with the name xwork has already
been loaded by bean -
wsjar:file:/C:/workspace_test/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/Struts2Demo/WEB-INF/lib/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72
- bean - wsjar:file:/C:/workspace_test/Jars/struts2-core-2.0.11.2.jar!/struts-default.xml:30:72
at
com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:193)
... 33 more
I understand that this is due to 2 copies of struts2 jars. Let me explain how I have configured my web project in the RAD environment.
I have a Web project called "Struts2Demo" project. And a separate project called "JARS" which contains all the required jars.
All the required jars for Struts2Demo web project are configured using "J2EE Module Dependencies - Web Libraries" referencing "JARS" project.
So the RAD while loading the web app is loading the jars from "JARS" project and also from the eclipse temp folder "/C:/workspace_test/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/Struts2Demo/WEB-INF/lib/", hence the error.
So, my question is there any way to fix this configuration other than putting required jars in WEB-INF/lib
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
RAD 零经验。但标准做法是将 struts jar(通常是大多数 jar)放在每个 Web 应用程序的 WEB-INF/lib 中。 Web 应用程序中每个库(不同的类加载器)中的类的隔离通常会抵消重复带来的不便,这有助于避免像您一样的问题。
Zero experience with RAD. But the standard practice, is to put the struts jars (and, in general, most of the jars) in the WEB-INF/lib of each web-application. The duplication inconvenience is usually outweighed by the isolation of classes from each library (different classloaders) among webapps, which helps to avoid problems as yours.