启动码头服务器时出现NoClassDefFoundError [英] NoClassDefFoundError while starting up jetty Server
问题描述
我正在尝试将我的webapp(春季)托管在码头服务器中.我将战争文件复制到了码头服务器的"webapp"文件夹中.我不是要嵌入码头服务器,而是要在码头内托管应用程序(例如tomcat).
I am trying to host my webapp (spring) in jetty server. I copied my war file to the 'webapp' folder in the jetty server. I am not trying to embed the jetty server, but trying to host the app within the jetty (like tomcat).
我安装了jetty,我刚刚下载了jetty7 zip并解压缩以获取服务器.
I dint install jetty, I just downloaded the jetty7 zip and extracted to get the server.
我需要在3台Linux机器上进行设置.在一台机器上,服务器可以正常启动.没有问题.
I need to set this up in 3 linux machines. In One machine the server is starting up just fine.No issues.
但是在另外两个中,当服务器启动时,它显示以下错误.
But in the other two, when the Server is starting up it is showing the following error.
2013-04-24 18:52:59.540:INFO::started o.e.j.w.WebAppContext{/cpewebapp,file:/tmp/jetty-0.0.0.0-9080-cpewebapp.war-_cpewebapp-any-/webapp/},/home/manooja/jetty-hightide-7.4.0.v20110414/webapps/cpewebapp.war
2013-04-24 18:52:59.648:WARN::FAILED spring: java.lang.NoClassDefFoundError: org/springframework/web/context/support/DefaultWebEnvironment
2013-04-24 18:52:59.648:WARN::FAILED o.e.j.w.WebAppContext{/cpewebapp,file:/tmp/jetty-0.0.0.0-9080-cpewebapp.war-_cpewebapp-any-/webapp/},/home/manooja/jetty-hightide-7.4.0.v20110414/webapps/cpewebapp.war: java.lang.NoClassDefFoundError: org/springframework/web/context/support/DefaultWebEnvironment
2013-04-24 18:52:59.649:WARN::Unable to reach node goal: started
java.lang.NoClassDefFoundError: org/springframework/web/context/support/DefaultWebEnvironment
at org.springframework.web.servlet.HttpServletBean.(HttpServletBean.java:90)
at org.springframework.web.servlet.FrameworkServlet.(FrameworkServlet.java:96)
at org.springframework.web.servlet.DispatcherServlet.(DispatcherServlet.java:128)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.eclipse.jetty.servlet.ServletContextHandler$Context.createServlet(ServletContextHandler.java:606)
at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:748)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:426)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:260)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:763)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:245)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:587)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:180)
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:482)
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:137)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:50)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:601)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:531)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:394)
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:329)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:114)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:543)
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:218)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:41)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:50)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:94)
at org.eclipse.jetty.server.Server.doStart(Server.java:253)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1220)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1143)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:477)
at org.eclipse.jetty.start.Main.start(Main.java:623)
at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:273)
at org.eclipse.jetty.start.Main.main(Main.java:81)
Caused by:
java.lang.ClassNotFoundException: org.springframework.web.context.support.DefaultWebEnvironment
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:420)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:373)
at org.springframework.web.servlet.HttpServletBean.(HttpServletBean.java:90)
at org.springframework.web.servlet.FrameworkServlet.(FrameworkServlet.java:96)
at org.springframework.web.servlet.DispatcherServlet.(DispatcherServlet.java:128)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.eclipse.jetty.servlet.ServletContextHandler$Context.createServlet(ServletContextHandler.java:606)
at org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:748)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:426)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:260)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:763)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:245)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:587)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:180)
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:482)
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:137)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:50)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:601)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:531)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:394)
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:329)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:114)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:543)
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:218)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:41)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:50)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:94)
at org.eclipse.jetty.server.Server.doStart(Server.java:253)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1220)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1143)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:477)
at org.eclipse.jetty.start.Main.start(Main.java:623)
at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:273)
at org.eclipse.jetty.start.Main.main(Main.java:81)
2013-04-24 18:52:59.654:INFO::Deployable added: /home/manooja/jetty-hightide-7.4.0.v20110414/webapps/root
2013-04-24 18:52:59.849:INFO::started o.e.j.w.WebAppContext{/,file:/home/manooja/jetty-hightide-7.4.0.v20110414/webapps/root/},/home/manooja/jetty-hightide-7.4.0.v20110414/webapps/root
2013-04-24 18:52:59.861:INFO::Deployment monitor /home/manooja/jetty-hightide-7.4.0.v20110414/contexts at interval 1
2013-04-24 18:52:59.950:INFO::Started SelectChannelConnector@0.0.0.0:9080 STARTING
请注意,默认端口已更改为9080.
Kindly note that the default port have been changed to 9080.
我暗示这可能是一些配置更改,因为它在一台机器上运行良好. 您能帮我指导解决此问题吗?
I have an inkling that it might be some configuration change, as it is working fine in one machine. Could you please help me with a guidance to solve this?
java -jar start.jar --version
Active Options: [Server, client, ext, jmx, jsp, resources, websocket]
Version Information on 25 entries in the classpath.
Note: order presented here is how they would appear on the classpath.
changes to the OPTIONS=[option,option,...] command line option will be reflected here.
0: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-xml-9.0.2.v20130417.jar
1: 3.0.0.v201112011016 | ${jetty.home}/lib/servlet-api-3.0.jar
2: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-http-9.0.2.v20130417.jar
3: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-continuation-9.0.2.v20130417.jar
4: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-server-9.0.2.v20130417.jar
5: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-security-9.0.2.v20130417.jar
6: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-servlet-9.0.2.v20130417.jar
7: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-webapp-9.0.2.v20130417.jar
8: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-deploy-9.0.2.v20130417.jar
9: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-client-9.0.2.v20130417.jar
10: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-jmx-9.0.2.v20130417.jar
11: 2.2.0.v201303151357 | ${jetty.home}/lib/jsp/com.sun.el-2.2.0.v201303151357.jar
12: 2.2.0.v201303151357 | ${jetty.home}/lib/jsp/javax.el-2.2.0.v201303151357.jar
13: 1.2.0.v201105211821 | ${jetty.home}/lib/jsp/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar
14: 2.2.0.v201112011158 | ${jetty.home}/lib/jsp/javax.servlet.jsp-2.2.0.v201112011158.jar
15: 2.2.2.v201112011158 | ${jetty.home}/lib/jsp/org.apache.jasper.glassfish-2.2.2.v201112011158.jar
16: 1.2.0.v201112081803 | ${jetty.home}/lib/jsp/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar
17: 3.8.2.v20130121-145325 | ${jetty.home}/lib/jsp/org.eclipse.jdt.core-3.8.2.v20130121.jar
18: (dir) | ${jetty.home}/resources
19: 9.0.2.v20130417 | ${jetty.home}/lib/websocket/websocket-api-9.0.2.v20130417.jar
20: 9.0.2.v20130417 | ${jetty.home}/lib/websocket/websocket-common-9.0.2.v20130417.jar
21: 9.0.2.v20130417 | ${jetty.home}/lib/websocket/websocket-server-9.0.2.v20130417.jar
22: 9.0.2.v20130417 | ${jetty.home}/lib/websocket/websocket-servlet-9.0.2.v20130417.jar
23: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-util-9.0.2.v20130417.jar
24: 9.0.2.v20130417 | ${jetty.home}/lib/jetty-io-9.0.2.v20130417.jar
dir ./WEB-INF/lib/
antlr-2.7.6.jar
aopalliance-1.0.jar
bcprov-jdk15on-148.jar
c3p0-0.9.1.jar
commons-collections-3.2.1.jar
commons-dbcp-1.3.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
commons-pool-1.5.4.jar
cpewebapp.jar
displaytag-1.2.jar
dom4j-1.6.1.jar
gson-1.6.jar
hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.4.Final.jar
hibernate-entitymanager-3.6.4.Final.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate-validator-4.2.0.Final.jar
jackson-core-asl-1.8.0.jar
jackson-mapper-asl-1.8.0.jar
javassist-3.12.0.GA.jar
json.jar
jta.jar
log4j-1.2.16.jar
servlet-2.3.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
spring-aop-3.1.0.RELEASE.jar
spring-asm-3.1.0.RELEASE.jar
spring-beans-3.1.0.RELEASE.jar
spring-context-3.1.0.RELEASE.jar
spring-context-support-3.1.0.RELEASE.jar
spring-core-3.1.0.RELEASE.jar
spring-expression-3.1.0.RELEASE.jar
spring-jdbc-3.1.0.RELEASE.jar
spring-ldap-core-1.3.0.RELEASE.jar
spring-ldap-core-tiger-1.3.0.RELEASE.jar
spring-orm-3.1.0.RELEASE.jar
spring-oxm-3.1.0.RELEASE.jar
spring-security-config-3.1.0.RELEASE.jar
spring-security-core-3.1.0.RELEASE.jar
spring-security-ldap-3.1.0.RELEASE.jar
spring-security-web-3.1.0.RELEASE.jar
spring-tx-3.1.0.RELEASE.jar
spring-web-3.1.0.RELEASE.jar
spring-webmvc-3.1.0.M1.jar
spring-web-servlet-3.1.0.RELEASE.jar
sqlite-jdbc-3.7.2.jar
velocity-1.6.2.jar
velocity-tools-view-2.0.jar
推荐答案
正如Stevie在评论中指出的那样, 问题是进入战争的另一个Jar文件.
As Stevie pointed out in the comments, the issue was an additional Jar file which got into the war.
我从WEB-INF/lib
中移除了Jar(在我的情况下为spring-webmvc-3.1.0.M1.jar
)并重新启动了码头.它很好地启动了.
I removed the Jar, in my case spring-webmvc-3.1.0.M1.jar
, from WEB-INF/lib
and restarted jetty.It started up fine.
由于它在编译/构建期间出现(没有按日食订购的jar),也没有出现,也没有出现在我部署的第一台机器中.
This went unnoticed as it dint show up during compile/build time (got the jar ordered in eclipse), nor did it showed up in the first machine i deployed.
非常感谢您的帮助.
这篇关于启动码头服务器时出现NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!