gpt4 book ai didi

当 com.opensymphony.xwork2.ActionSupport 出现在 WEB-INF/lib 中时,tomcat 给出 classnotfoundexception

转载 作者:行者123 更新时间:2023-11-28 23:39:55 24 4
gpt4 key购买 nike

我正在尝试在 tomcat 中部署一个目录,该目录在其 WEB-INF/lib 文件夹中包含以下与 struts2 相关的 jar:-

commons-fileupload-1.2.2.jar
commons-logging-1.1.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
xwork-core-2.3.8.jar
commons-lang3-3.1.jar
ognl-3.0.6.jar
struts2-core-2.3.8.jar // and some jars containing business-logic

但是,在 tomcat 中部署此目录时,它会以下列方式抛出 ClassNotFoundException:-

Dec 27, 2013 4:42:27 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class
org.apache.struts2.dispatcher.ng.listener.StrutsListener
java.lang.NoClassDefFoundError: com/opensymphony/xwork2/ActionSupport
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:788)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
...and 26 more

Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.ActionSupport
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 42 more

这真的很奇怪,因为 “xwork-core-2.3.8.jar”,在 WEB-INF/lib 文件夹中,包含 tomcat 报告丢失的相同类,即 com.打开symphony.xwork2.ActionSupport。更奇怪的是,我试图在另一台计算机上部署相同的目录并且它运行良好。我不知道这里出了什么问题。如果能帮我解决这个问题,我将不胜感激。

这是我写的web.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>KrozonaService</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.krozona.databaseaccess.gatewayService</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.apache.struts2.dispatcher.ng.listener.StrutsListener
</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

这里是 struts.xml :-

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd" >
<struts>
<constant name="struts.devMode" value="true" />
<package name="Krozona" namespace="/" extends="struts-default" >

<action name="GetTags"
class="com.krozona.databaseaccess.gatewayService.GetTagsAction"
method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
</package>
</struts>

最佳答案

这很奇怪,但是,将相同的 jar 放在 TOMCAT/lib 而不是 webapp/WEB-INF/lib 中可以解决问题。不知道为什么,但它有效。

关于当 com.opensymphony.xwork2.ActionSupport 出现在 WEB-INF/lib 中时,tomcat 给出 classnotfoundexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com