Java Struts2框架中的NoClassDefFoundError

Java Struts2框架中的NoClassDefFoundError,java,struts2,httpclient,Java,Struts2,Httpclient,我使用Struts2框架和HttpClient类来发出put请求。 当我试图在LoginAction类中调用httpClient的requestEntity方法时,我得到了以下错误 严重:启动过滤器struts2时出现异常 java.lang.NoClassDefFoundError:org/apache/commons/httpclient/methods/RequestEntity 我已经在类路径中包含了所有必需的jar文件 请帮我找出问题所在。如果您使用的是旧版本(apache commo

我使用Struts2框架和HttpClient类来发出put请求。 当我试图在LoginAction类中调用httpClient的requestEntity方法时,我得到了以下错误

严重:启动过滤器struts2时出现异常 java.lang.NoClassDefFoundError:org/apache/commons/httpclient/methods/RequestEntity

我已经在类路径中包含了所有必需的jar文件


请帮我找出问题所在。

如果您使用的是旧版本(apache commons低于3.0),那么旧jar中将无法使用该类。您必须使用ApacheCommons3.0库
org/apache/commons/httpclient/methods/RequestEntity
类是从
v3.0
开始添加的。检查


通常,如果我们没有在类路径中添加jar(或不在项目中),那么我们会得到
ClassNotFoundException
,如果我们在项目中包含jar,并且它在类路径中,但特定的类不可用,那么我们会得到
NoClassDefFoundError

您使用的是什么应用服务器或servlet容器?提供WAR(或分解目录)中JAR的列表或屏幕截图。您得到的异常意味着您实际上没有所有必需的JAR。请使用IDE,例如eclipse。如果httpClient类不存在,则最好不要编译LoginAction类classpath@MSach:如果他没有直接使用该类,则另一个类(可能来自其他库)他在库中使用的可参考
RequestEntity
。这次他不会得到编译器错误。@Stevenbeintez我使用的是TomcatServlet容器。我使用的jar列表是commons-codec-1.3.jar-commons-code-1.4.jar-commons-httpclient-3.1.jar和它们之间的依赖关系jars@MSach是的,我正在使用IDEEclipse。感谢您的回复。是的,我正在使用jar的v3.0。但是,错误仍然存在。请告诉我是否有其他方法可以使类可用。在eclipse或winrar中打开jar并检查类是否存在。我认为您对这两个异常之间差异的解释不准确。检查Javadocs
NoClassDefFoundError
表示该类在编译期间存在,但现在找不到。这对我来说意味着他实际上并没有将JAR作为WAR(或分解目录)的一部分进行部署。另一种情况可能是:如果您没有直接使用该类,则您在库中使用的另一个类(可能来自其他库)可能引用
RequestEntity
。这一次,您不会在运行时收到编译器错误,但会收到
NoClassDefFoundError
。请您确切地告诉我将使用哪个jar来解决此错误?我使用的是jar的版本3。还是需要在清单文件中设置类路径?请让我知道。非常感谢。