tomcat在com.opensymphony.xwork2.ActionSupport上提供classnotfoundexception,当它出现在WEB-INF/lib中时
我试图在tomcat中部署一个目录,该目录在其WEB-INF/lib文件夹中包含以下与struts2相关的JAR:-tomcat在com.opensymphony.xwork2.ActionSupport上提供classnotfoundexception,当它出现在WEB-INF/lib中时,tomcat,struts2,Tomcat,Struts2,我试图在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 s
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
这真的很奇怪,因为WEB-INF/lib文件夹中的“xwork-core-2.3.8.jar”包含tomcat报告丢失的同一个类,即com.opensymphony.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>
克罗佐纳服务
支柱2
org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
行动包
com.krozona.databaseaccess.gatewayService
支柱2
/*
org.apache.struts2.dispatcher.ng.listener.StrutsListener
index.jsp
下面是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>
/HelloWorld.jsp
这很奇怪,但是,将相同的jar放在TOMCAT/lib而不是webapp/WEB-INF/lib中解决了问题。不知道为什么,但它可以工作。请展示您的web.xml添加了web.xml和struts.xml,为您的tomcat服务器提供了不同版本的xwork代码jar。可能是版本冲突。至少你可以在另一个comp上工作,检查tomcat lib文件夹是否包含库xwork-core-x.x.x.jar。是的,将jar放入tomcat/lib文件夹可以解决这个问题。谢谢