Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ConnectionReuseStrategy:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ConnectionReuseStrategy:
我正在尝试 运行 作为 Java 应用程序在一个带有 Eclipse 的 Maven 项目中,我得到以下 运行 时间 error.The 错误如下所示。
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/http/ConnectionReuseStrategy at
com.wang.testMaven.App.main(App.java:16) Caused by:
java.lang.ClassNotFoundException:
org.apache.http.ConnectionReuseStrategy at
java.net.URLClassLoader.findClass(URLClassLoader.java:381) at
java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我的代码如下所示
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
HttpClient httpClient = HttpClientBuilder.create().build();
System.out.println( "Hello World!" );
}
}
我的pom.xml如下图
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wang</groupId>
<artifactId>testMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>testMaven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1-alpha1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies>
</project>
任何想法..谢谢
我意识到有几个依赖项具有相同的 groupId 和 artifactId。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1-alpha1</version>
</dependency>
和
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
实际上,您应该只有一个具有相同 groupId 和 artifactId 的依赖项。
所以我首先删除了 httpcore:4.1-alpha1 依赖项并执行了测试 class。我得到异常
java.lang.NoClassDefFoundError: org/apache/http/config/Lookup
at com.test.so.Test1.test(Test1.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
然后我用httpcore:4.1-alpha1代替了httpcore-4.1,我得到了同样的异常。
因此,当我根据 SO link 将 httpcore 版本更新到 4.3.3 时,我得到了异常 -
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/SSLContexts
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
at com.amitg.so.App.main(App.java:11)
终于将 httpcore 版本更新到 4.4,它运行得非常好。所以它应该适用于 4.4 以上的所有 httpcore 版本 jar。 (我测试了 4.4.4,它也运行良好。)。提到了可用的版本 here. Please find the working code over here。
我正在尝试 运行 作为 Java 应用程序在一个带有 Eclipse 的 Maven 项目中,我得到以下 运行 时间 error.The 错误如下所示。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ConnectionReuseStrategy at com.wang.testMaven.App.main(App.java:16) Caused by: java.lang.ClassNotFoundException: org.apache.http.ConnectionReuseStrategy at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我的代码如下所示
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
HttpClient httpClient = HttpClientBuilder.create().build();
System.out.println( "Hello World!" );
}
}
我的pom.xml如下图
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wang</groupId>
<artifactId>testMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>testMaven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1-alpha1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies>
</project>
任何想法..谢谢
我意识到有几个依赖项具有相同的 groupId 和 artifactId。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1-alpha1</version>
</dependency>
和
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
实际上,您应该只有一个具有相同 groupId 和 artifactId 的依赖项。
所以我首先删除了 httpcore:4.1-alpha1 依赖项并执行了测试 class。我得到异常
java.lang.NoClassDefFoundError: org/apache/http/config/Lookup
at com.test.so.Test1.test(Test1.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
然后我用httpcore:4.1-alpha1代替了httpcore-4.1,我得到了同样的异常。
因此,当我根据 SO link 将 httpcore 版本更新到 4.3.3 时,我得到了异常 -
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/SSLContexts
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
at com.amitg.so.App.main(App.java:11)
终于将 httpcore 版本更新到 4.4,它运行得非常好。所以它应该适用于 4.4 以上的所有 httpcore 版本 jar。 (我测试了 4.4.4,它也运行良好。)。提到了可用的版本 here. Please find the working code over here。