名为struts的Bean类型类com.opensymphony.xwork2.ObjectFactory已经被bean加载了

问题描述 投票:0回答:2

我有一个使用 Eclipse、Struts 2 的 Web 应用程序,并在 Tomcat 7 服务器上运行。

我已经不再使用 http://javabrains.koushik.org 教程了。

我已经准备好了所有基本的 Struts 组件,但是由于某种原因,当我将这段代码引入到

web.xml
:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
<filter-mapping>

它把书扔向我。

严重:调度程序初始化失败 无法加载配置。 - 豆 - 原因:无法加载 bean:类型:class:com.opensymphony.xwork2.ObjectFactory - bean -
原因:名为 struts 的 Bean 类型类 com.opensymphony.xwork2.ObjectFactory 已被 bean 加载 - 严重:启动过滤器 struts2 时出现异常
无法加载配置。 -豆子-
原因:无法加载配置。 -豆子-
原因:无法加载 bean:类型:class:com.opensymphony.xwork2.ObjectFactory - bean -
原因:名为 struts 的 Bean 类型类 com.opensymphony.xwork2.ObjectFactory 已被 bean 加载 - jar:file:/C:/Program%20Files%20(x86)/Apache%20Software%20Foundation/Tomcat%207.0 /lib/struts2-core-2.3.16.jar!/struts-default.xml:40:72 -豆子-

我知道这不是完整的文本转储,但我不知道其余部分有多大用处。我需要理解它为什么这样做,这样我才能让它工作。

java eclipse tomcat configuration struts2
2个回答
3
投票

您不应将应用程序特定的 jar 复制到服务器

lib
文件夹。而是使用
WEB-INF/lib
。从服务器
struts2-core-2.3.16.jar
删除
lib
。如果
struts2-core-x.x.x.jar
中有另一个
WEB-INF/lib
,它会阻止 Tomcat 部署您的应用程序,因为在部署任何应用程序之前会加载 Tomcat
lib
文件夹中的库。它会停止部署。 Tomcat
lib
文件夹应仅包含运行 Web 容器所需的 Tomcat 安装的 jar,除非您知道自己在做什么,否则无需复制其他 jar。


2
投票

没关系。事实证明,我所需要做的就是忘记构建路径,只将 jar 放入

WEB-INF/lib
文件夹中。效果就像一个魅力:D

© www.soinside.com 2019 - 2024. All rights reserved.