在使用Java解析JSON时,因为缺少包,会报一些错误,这些都很容易解决的。
2014-12-18 10:51:55 org.apache.commons.httpclient.HttpMethodBase getResponseBody 警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. {"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u5317","area_id":"100000","region":"\u5317\u4eac\u5e02","region_id":"110000","city":"\u5317\u4eac\u5e02","city_id":"110000","county":"\u671d\u9633\u533a","county_id":"110105","isp":"\u8054\u901a","isp_id":"100026","ip":"125.34.6.143"}} Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at http.GetIpAdd.main(GetIpAdd.java:21) Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 13 more
这是因为缺少commons-lang包造成的。
2014-12-18 10:56:34 org.apache.commons.httpclient.HttpMethodBase getResponseBody 警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. {"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u5317","area_id":"100000","region":"\u5317\u4eac\u5e02","region_id":"110000","city":"\u5317\u4eac\u5e02","city_id":"110000","county":"\u671d\u9633\u533a","county_id":"110105","isp":"\u8054\u901a","isp_id":"100026","ip":"125.34.6.143"}} Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher at http.GetIpAdd.main(GetIpAdd.java:19) Caused by: java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 1 more
这是因为缺少ezmorph造成的。
2014-12-18 10:59:02 org.apache.commons.httpclient.HttpMethodBase getResponseBody 警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. {"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u5317","area_id":"100000","region":"\u5317\u4eac\u5e02","region_id":"110000","city":"\u5317\u4eac\u5e02","city_id":"110000","county":"\u671d\u9633\u533a","county_id":"110105","isp":"\u8054\u901a","isp_id":"100026","ip":"125.34.6.143"}} Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/MultiKeyMap at net.sf.json.JsonConfig.<init>(JsonConfig.java:56) at net.sf.json.JSONObject.fromObject(JSONObject.java:145) at http.GetIpAdd.main(GetIpAdd.java:19) Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.MultiKeyMap at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 3 more
这是因为缺少commons-collections包造成的。
下一篇,我将做一个解析淘宝API,根据IP获取城市,解析返回JSON的示例。可以根据示例和示例的JAR包,来做自己的一些应用。
但是切记要注意,在增加包时要注意包的版本,不要和原来工程引起包冲突。
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: