2012-05-24 50 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