2013-03-13 2 views
0

Я получаю следующее STRACK след и не знаю, почему:Сервлет не распознает JSON?

SEVERE: Servlet.service() for servlet [BuddyController] in context with path [/gbserver] threw exception [Servlet execution threw an exception] with root cause 
java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    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 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904) 
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at com.mathanv.gb.dao.BuddyDao.registerBuddy(BuddyDao.java:50) 
    at com.mathanv.gb.controller.BuddyController.doPost(BuddyController.java:53) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
    at java.lang.Thread.run(Thread.java:680) 

выше Strack след генерируется следующим кодом:

JSONObject response = new JSONObject(); 

И у меня есть следующая структура: Structure

Любые идеи, почему я получаю сообщение об ошибке?

+0

Рассмотрим (в перспективе средней и долгосрочной перспективе) узнать что-то вроде [Maven] (HTTP: // Maven. apache.org/) для работы с сторонними библиотеками для вашего проекта. Это отчасти страшно, но IDE в основном используют управление зависимостями. – millimoose

+0

Спасибо alot mate, довольно новый для этого материала и зависимость - новая проблема, с которой я столкнулся в последнее время. Всегда старайтесь изучать лучшие практики! Какие-нибудь хорошие места я могу начать читать по основам Maven? – MathanMV

+1

Официальный сайт будет одним. Это тот инструмент, где обычно помогает иметь проект, который уже работает, чтобы совать и исследовать. К счастью, это в значительной степени то, что «архетипы» Maven уже делают, и учебник запускает вас с помощью одного. Поэтому создайте простой архетип webapp и запустите 'mvn tomcat: run', чтобы узнать, работает ли это, а затем с этим работаем. Такие сайты, как mvnrepository.com, помогут вам понять, что вам нужно для добавления библиотек в проект. – millimoose

ответ

1

Вам необходимо включить Commons Lang в свою библиотеку; от этого зависит ваша библиотека JSON. (В частности, исключение, вы видите, потому что org.apache.commons.lang.exception.NestableRuntimeException — см http://commons.apache.org/proper/commons-lang//javadocs/api-2.6/org/apache/commons/lang/exception/NestableRuntimeException.html — не в вашем пути к классам.)

Смежные вопросы