2013-12-01 2 views
0

У меня есть приложение, в /var/lib/tomcat7/webapps/code У меня есть init.java файл, использовать json-rpc-2.0Tomcat не может запустить приложение, потому что он не может найти JSONRPC2ParseException класса

компилировать его с помощью:

export CLASSPATH=$CLASSPATH:/path/jsonrpc2-base-1.35.jar:/path/json-smart-1.2.jar 
javac init.java 

это компилировать но когда я запустить приложение (не сервлет) я получил ошибку 404 от Tomcat и в catalina.out файле есть исключение:

org.apache.catalina.LifecycleException: Failed to start component [StandardEngin 
e[Catalina].StandardHost[localhost].StandardContext[/code]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase 
.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87 
7) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.jav 
a:1114) 
     at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig 
.java:1673) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47 
1) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:724) 
Caused by: java.lang.NoClassDefFoundError: com/thetransactioncompany/jsonrpc2/JSONRPC2ParseException 
     at java.lang.Class.getDeclaredFields0(Native Method) 
     at java.lang.Class.privateGetDeclaredFields(Class.java:2387) 
     at java.lang.Class.getDeclaredFields(Class.java:1796) 
     at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) 
     at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261) 
     at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:140) 
     at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67) 
     at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405) 
     at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) 
     at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) 
     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 11 more 
Caused by: java.lang.ClassNotFoundException: com.thetransactioncompany.jsonrpc2.JSONRPC2ParseException 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
     ... 25 more 

с вызваны не найдено com/thetransactioncompany/jsonrpc2/JSONRPC2ParseException, который находится в файле jar.

Что здесь происходит? Как я могу исправить это, чтобы он работал?

+1

положить json-rpc-2.0 jar файл в папку Tomcat lib – Makky

+0

Спасибо @Makky, я положил в '/ usr/share/tomcat7/lib' и перезапустил tomcat, и он работает. Вы можете сказать это как ответ. – jcubic

ответ

0

Это, как правило, файлы jar недоступны для Tomcat.

Лучший способ решить это поместить json-rpc-2.0 jar файлы в Lib папку вашего приложения Tomcat

Update

Как указано A4L пользователем, вы можете также поместить банку в вашем веб-приложений WEB-INF/lib, а также ,

+2

еще лучше в 'WEB-INF/lib' вашего приложения ... – A4L

+0

Да, добавление в ваш сервер lib лучше, если у вас более одного приложения, использующего ту же банку. Например, sendlet-api jar, его не рекомендуется помещать в ваш WEB-INF lib, потому что он уже находится на пути Tomcat. Опять же, его до индивидуального – Makky

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