2012-05-24 1 views
0

Я пытаюсь развернуть файл сгенерированного maven на сервере tomcat в eclipse .. но я получаю java.lang.NoClassDefFoundError в файле jar. Я проверял несколько раз, jar находится в .war, и соответствующий файл класса также доступен в банке. Я могу скопировать войну из сгенерированного местоположения в eclipse и успешно выполнить развертывание в webapps tomcat (используя тот же сервер, что и установленный сервер в eclipse).java.lang.NoClassDefFoundError в eclipse и tomcat однако WAR работает в автономном tomcat

Я не уверен, что еще проверить конфигурацию отдельно от сборки развертывания (в которой указан jar) и пути Java Build (jar доступен в Maven Dependencies). Я использую JRE -> Alternate JRE указывает на JDK 1.6

Complete ERROR LOG:

2012-05-24 16:43:09,379 [main] ERROR org.springframework.web.context.ContextLoader -  Context initialization failed 
java.lang.NoClassDefFoundError: Lcom/att/cso/uss/client/ws/CciClientImpl; 

at java.lang.Class.getDeclaredFields0(Native Method) 
at java.lang.Class.privateGetDeclaredFields(Class.java:2291) 
at java.lang.Class.getDeclaredFields(Class.java:1743) 
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:373) 
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:321) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:830) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:493) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

Caused by: java.lang.ClassNotFoundException: com.att.cso.uss.client.ws.CciClientImpl 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329) 
    ... 33 more 

Пожалуйста проконсультировать.

+0

Как насчет предоставления более подробной информации о вашей настройке затмения? Используете ли вы m2e и, если так, m2e-wtp? Eclipse не использует файл 'war', созданный в папке« target »maven для развертывания в tomcat. – Raghuram

+0

Как вы развертываете войну в затмении? Вы добавили исходный проект maven к экземпляру сервера tomcat в представлении «Серверы»? – Ravi

+0

@ Raghuram - я использую m2e-wtp. Итак, где и как я могу искать развертывание войны в eclipse. Должен ли быть проверен любой файл в папке с настройками? – riamob

ответ

0

Использование экземпляра сервера не такое же, как развертывание WAR в tomcat. Интеграция с серверами tomcat «hot» развертывает исходную папку. Я предлагаю вам проверить параметры пути Java Build, потому что они используются, когда вы развертываете исходный проект на сервере в виде серверов. Как вы создаете войну? Я предполагаю, что вы используете maven для этого. Если вы используете maven (у меня есть личная неприязнь к нему), он должен управлять зависимостями для вас. Возможно, вам придется реплицировать настройки maven в java или использовать плагин maven для eclipse. [http://www.eclipse.org/m2e/]

+0

Я использую maven и m2e/m2e-wtp плагин. В пути построения проекта у меня есть Maven Dependencies, который получил все банки (включая банку, которая имеет проблему, как в журналах, которые видны в моем вопросе). Развертывание проекта (mainweb), имеющего зависимость от jar (cciclient). Должен ли я связать источник проекта ccliClient в пути сборки mainweb? – riamob

+0

Я не уверен, что означает ccliClient. Но если это либо время сборки, либо зависимость от времени выполнения, вы должны добавить его в зависимости от проекта. Время сборки означает, что вам нужно для компиляции. Runtime означает, что вам нужно это время выполнения (обычно зависимость будет через отражение) – Ravi