Java 找不到HttpUriRequest的类
我试图创建一个Jar文件,用于连接到我在Node.js中编写的rest服务。我是按照这个指南来做的 使用Maven编译后,会出现以下错误:Java 找不到HttpUriRequest的类,java,maven,Java,Maven,我试图创建一个Jar文件,用于连接到我在Node.js中编写的rest服务。我是按照这个指南来做的 使用Maven编译后,会出现以下错误: Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUr
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
App.java
pom.xml
4.0.0
com.vogella.build.maven.java
com.vogella.build.maven.java
罐子
1.0-快照
com.vogella.build.maven.java
http://maven.apache.org
朱尼特
朱尼特
3.8.1
测试
org.apache.httpcomponents
httpclient
4.1.1
有人知道这有什么问题吗?您的应用程序依赖于httpclient-4.1.1.jar,您需要通过将jar放在类路径中来运行应用程序。构建应用程序时,Maven将jar下载到本地存储库中 您可以找到许多关于如何指定类路径的示例
你能试着从/m2/存储库中删除
httpclient
jar一次,更新到4.5.3
并重新构建项目(mvn clean install
)@nullpointer我没有httpclient jar。我以为Maven会帮我拿到的?我需要做额外的步骤让Maven下载那个jar文件吗?
package com.vogella.build.maven.java;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
public class App {
public static void main(String[] args) {
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(
"http://localhost:3001/getTestData");
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 201) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(
new InputStreamReader((response.getEntity().getContent())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
httpClient.getConnectionManager().shutdown();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.vogella.build.maven.java</groupId>
<artifactId>com.vogella.build.maven.java</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>com.vogella.build.maven.java</name>
<url>http://maven.apache.org</url>
<dependencies>
<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.1.1</version>
</dependency>
</dependencies>
</project>