2012-05-24 120 views
0

我試圖部署的maven生成war文件到Eclipse中Tomcat服務器..但我得到java.lang.NoClassDefFoundError一個jar文件。我多次驗證,jar是在.war中,相應的類文件也可以在jar中使用。 我可以從eclipse中的生成位置複製戰爭併成功部署到tomcat的webapps中(在eclipse中使用與安裝的服務器相同的服務器)。java.lang.NoClassDefFoundError在eclipse和tomcat但是戰爭是工作在獨立的Tomcat

我不知道還有什麼可以在配置上除了展開組件檢查(已上市的廣口瓶)和Java構建路徑(JAR可在Maven依賴)。我使用的JRE - >替代JRE指向JDK 1.6

完全錯誤日誌:

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

如何給自己的Eclipse設置的更多細節?你使用m2e,如果是m2e-wtp? Eclipse不使用maven的'target'文件夾中創建的'war'文件來部署到tomcat。 – Raghuram

+0

你如何在eclipse中部署戰爭?您是否已將Maven Source項目添加到Servers視圖中的tomcat服務器實例? – Ravi

+0

@Raghuram - 我正在使用m2e-wtp。那麼我在哪裏以及如何在eclipse中尋找部署戰。設置文件夾中的任何文件是否需要驗證? – riamob

回答

0

使用服務器實例並不相同Tomcat中部署WAR。服務器查看tomcat'hot'的集成部署源文件夾。我建議你檢查一下你的Java Build路徑設置,因爲當你在服務器視圖中將源項目「部署」到服務器時會使用這些設置。你是如何製造這場戰爭的?我假設你正在使用maven。如果你正在使用maven(我個人不喜歡它),它應該爲你管理依賴關係。你可能需要在java中複製maven的設置,或者可能會使用maven插件進行eclipse。 [http://www.eclipse.org/m2e/]

+0

我使用maven和m2e/m2e-wtp插件。在項目的構建路徑中,我有Maven Dependencies,它獲得了所有的jar(包括在我的問題中看到的日誌中存在問題的jar)。部署依賴於jar(cciclient)的項目(mainweb)。我應該在mainweb的構建路徑中鏈接ccliClient項目的源代碼? – riamob

+0

我不確定ccliClient的含義。但是,如果它是構建時間或運行時依賴項,則應將其添加到項目依賴項中。編譯時間意味着,您需要編譯它。運行時意味着你需要它運行時(通常依賴會通過反射) – Ravi