颓了颓了,,,,,我将GSON数据POST给服务器,想在服务器端解析,使用
JSONObject json = JSONObject.fromObject(String)编译不报错,运行报错
我以为是String数据结构问题,于是就用GSON先把数据转换成json格式,然后在解析,还是报错。。。
List<Handle_HistoryDate> mlist = new ArrayList<Handle_HistoryDate>();
mlist.add(new Handle_HistoryDate(11,200,"232",25,36));
Gson gson = new Gson();
String flag = gson.toJson(mlist);
System.out.println(flag);
JSONObject json = JSONObject.fromObject(flag);
传递进入flag参数为:
报错信息为:
六月 27, 2017 9:38:39 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [servlet.Login] in context with path [/hwyServer] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2503)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:831)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at servlet.Login.doPost(Login.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
jar包为:
JsonArray 转下呢···你那报错信息真无心吐槽·····
Stringflag="[{\"measure\":11,\"speed\":200,\"date\":\"223\",\"col\":25,\"humi\":36}]";
System.out.println(flag);
//[{"measure":11,"speed":200,"date":"223","col":25,"humi":36}]
JSONArrayarray=JSONArray.fromObject(flag);
System.out.println(array);
//[{"measure":11,"speed":200,"date":"223","col":25,"humi":36}]
加个commons-lang-2.X.jar试试
tomcat的classloader是动态加载class文件的,你的问题就是缺少jar包,所以发生了运行时错误。具体错误原因你给出的栈信息不足,很难判断。不用震惊...你这就是缺失jar包.至于编译时没错,那是因为你还没触发到异常.
运行的时候出错了,比如解析字符串有问题. 那就抛异常了,结果抛异常的时候找不到异常类.所以就出现你现在的这个错误了.
最后指正:这个类是commons-lang-2.xx版本的.你用的是commons-lang-3.xxx版本
网上查了,归纳下,有几种可能
1、jar包不全
2、传递进入的数据格式有误
3、jar包和jdk版本不符合(我的版本为jdk1.8)
第三种我没试过,但是我感觉不太可能啊,前两个应该没问题,大家帮忙看看
JsonArray 转下呢···你那报错信息真无心吐槽·····
fastjson····里面有现成的方法····加个commons-lang-2.X.jar试试
不用震惊...你这就是缺失jar包.至于编译时没错,那是因为你还没触发到异常.
运行的时候出错了,比如解析字符串有问题. 那就抛异常了,结果抛异常的时候找不到异常类.所以就出现你现在的这个错误了.
最后指正:这个类是commons-lang-2.xx版本的.你用的是commons-lang-3.xxx版本
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。