Exception in thread “main” java.lang.NoClassDefFoundError
通过虚拟登陆,请求了指令,返回正确的数据后,解析出错了。看了一下环境配置没有问题,主函数、程序都没有问题,后来排查是jar包的问题。
或许这个网址会有些帮助:https://blog.csdn.net/gu_gu_/article/details/50551775
jar包下载地址,亲测好用:https://download.csdn.net/download/win_xiang/3985085
程序如下:
public static void main(String arg[]){
try {
DataService.startsync();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void startsync() throws Exception{
BufferedReader in = null;
String response = "";
try {
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(Datautil.loginjsp);
NameValuePair[] data = {
new NameValuePair("username", Datautil.loginName),
new NameValuePair("password",Datautil.loginPassword)
};
postMethod.setRequestBody(data);
httpClient.executeMethod(postMethod);
Cookie[] cookies = httpClient.getState().getCookies();
System.out.println(cookies[0].getValue());
sessionID=cookies[0].getValue();
String dataurl="http://" + Datautil.serverIp ;
URL url = new URL(dataurl);
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Charset", "UTF-8");
httpURLConnection.setRequestProperty("Cookie", "JSESSIONID=" + sessionID);
httpURLConnection.connect();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
String line;
//逐行读取
while ((line = in.readLine()) != null) {
response += line;
}
System.out.println(response);
JSONArray jsonArray = JSONArray.fromObject(response);//将返回的字符串解析成json数组
System.out.println(jsonObject);
} catch (Exception e) {
e.printStackTrace();
throw new Exception();
}
}
执行的结果如下:
EF23F10218E44E4E8F395A4828401EAC
[{“aaa”:“测试”}]
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader
1.
r
u
n
(
U
R
L
C
l
a
s
s
L
o
a
d
e
r
.
j
a
v
a
:
362
)
a
t
j
a
v
a
.
s
e
c
u
r
i
t
y
.
A
c
c
e
s
s
C
o
n
t
r
o
l
l
e
r
.
d
o
P
r
i
v
i
l
e
g
e
d
(
N
a
t
i
v
e
M
e
t
h
o
d
)
a
t
j
a
v
a
.
n
e
t
.
U
R
L
C
l
a
s
s
L
o
a
d
e
r
.
f
i
n
d
C
l
a
s
s
(
U
R
L
C
l
a
s
s
L
o
a
d
e
r
.
j
a
v
a
:
361
)
a
t
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
L
o
a
d
e
r
.
l
o
a
d
C
l
a
s
s
(
C
l
a
s
s
L
o
a
d
e
r
.
j
a
v
a
:
424
)
a
t
s
u
n
.
m
i
s
c
.
L
a
u
n
c
h
e
r
1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher
1.run(URLClassLoader.java:362)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:361)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.sdemai.service.DataService.startsync(DataService.java:65)
at com.sdemai.service.DataService.main(DataService.java:86)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 14 more
====================================================================================