震惊!JSONObject.fromObject(String)方法运行报错,不知道啥情况
颓了颓了,,,,,我将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包为:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
引用来自“张恒强”的评论
不用震惊...你这就是缺失jar包. 至于编译时没错,那是因为你还没触发到异常.
运行的时候出错了,比如解析字符串有问题. 那就抛异常了,结果抛异常的时候找不到异常类. 所以就出现你现在的这个错误了.
最后指正: 这个类是commons-lang-2.xx版本的. 你用的是commons-lang-3.xxx版本
引用来自“DeMoNHaDeS”的评论
加个commons-lang-2.X.jar试试
引用来自“为为02”的评论
tomcat的classloader是动态加载class文件的,你的问题就是缺少jar包,所以发生了运行时错误。具体错误原因你给出的栈信息不足,很难判断。
fastjson ···· 里面有现成的方法····
引用来自“skhuhu”的评论
JsonArray 转下呢···你那报错信息真无心吐槽·····
网上查了,归纳下,有几种可能
1、jar包不全
2、传递进入的数据格式有误
3、jar包和jdk版本不符合(我的版本为jdk1.8)
第三种我没试过,但是我感觉不太可能啊,前两个应该没问题,大家帮忙看看
不用震惊...你这就是缺失jar包. 至于编译时没错,那是因为你还没触发到异常.
运行的时候出错了,比如解析字符串有问题. 那就抛异常了,结果抛异常的时候找不到异常类. 所以就出现你现在的这个错误了.
最后指正: 这个类是commons-lang-2.xx版本的. 你用的是commons-lang-3.xxx版本
tomcat的classloader是动态加载class文件的,你的问题就是缺少jar包,所以发生了运行时错误。具体错误原因你给出的栈信息不足,很难判断。
String flag ="[{"measure":11,"speed":200,"date":"223","col":25,"humi":36}]";
System.out.println(flag);
//[{"measure":11,"speed":200,"date":"223","col":25,"humi":36}]
JSONArray array = JSONArray.fromObject(flag);
System.out.println(array);
//[{"measure":11,"speed":200,"date":"223","col":25,"humi":36}]
JsonArray 转下呢···你那报错信息真无心吐槽·····