我正在尝试在jetty服务器上托pipe我的webapp(spring)。 我将我的战争文件复制到docker服务器中的“webapp”文件夹中。 我不是试图embeddeddocker服务器,而是试图在docker内托pipe应用程序(如tomcat)。
我dint安装docker,我只是下载jetty7邮编和解压缩到服务器。
我需要在3台Linux机器上进行设置。 在一台机器服务器启动就好。没有问题。
但在另外两个,当服务器启动它显示以下错误。
2013-04-24 18:52:59.540:INFO :: started oejwWebAppContext {/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 oejwWebAppContext {/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 ::无法达到节点目标:启动 java.lang.NoClassDefFoundError:org / springframework / web / context / support / DefaultWebEnvironment 在org.springframework.web.servlet.HttpServletBean。(HttpServletBean.java:90) 在org.springframework.web.servlet.FrameworkServlet。(FrameworkServlet.java:96) 在org.springframework.web.servlet.DispatcherServlet。(DispatcherServlet.java:128) 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本地方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:525) 在java.lang.Class.newInstance0(Class.java:372) 在java.lang.Class.newInstance(Class.java:325) 在org.eclipse.jetty.servlet.ServletContextHandler $ Context.createServlet(ServletContextHandler.java:606) 在org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:748) 在org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:426) 在org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:260) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:763) 在org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:245) 在org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158) 在org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:587) 在org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 在org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:180) 在org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:482) 在org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 在org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:137) 在org.eclipse.jetty.deploy.providers.ScanningAppProvider $ 1.fileAdded(ScanningAppProvider.java:50) 在org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:601) 在org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:531) 在org.eclipse.jetty.util.Scanner.scan(Scanner.java:394) 在org.eclipse.jetty.util.Scanner.doStart(Scanner.java:329) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:114) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:543) 在org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:218) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:41) 在org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:50) 在org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:94) 在org.eclipse.jetty.server.Server.doStart(Server.java:253) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.xml.XmlConfiguration $ 1.run(XmlConfiguration.java:1220) 在java.security.AccessController.doPrivileged(本地方法) 在org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1143) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601) 在org.eclipse.jetty.start.Main.invokeMain(Main.java:477) 在org.eclipse.jetty.start.Main.start(Main.java:623) 在org.eclipse.jetty.start.Main.parseCommandLine(Main.java:273) 在org.eclipse.jetty.start.Main.main(Main.java:81) 引起: java.lang.ClassNotFoundException:org.springframework.web.context.support.DefaultWebEnvironment 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) 在java.security.AccessController.doPrivileged(本地方法) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在java.lang.ClassLoader.loadClass(ClassLoader.java:423) 在java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:420) 在org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:373) 在org.springframework.web.servlet.HttpServletBean。(HttpServletBean.java:90) 在org.springframework.web.servlet.FrameworkServlet。(FrameworkServlet.java:96) 在org.springframework.web.servlet.DispatcherServlet。(DispatcherServlet.java:128) 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本地方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在java.lang.reflect.Constructor.newInstance(Constructor.java:525) 在java.lang.Class.newInstance0(Class.java:372) 在java.lang.Class.newInstance(Class.java:325) 在org.eclipse.jetty.servlet.ServletContextHandler $ Context.createServlet(ServletContextHandler.java:606) 在org.eclipse.jetty.servlet.ServletHolder.newInstance(ServletHolder.java:748) 在org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:426) 在org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:260) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:763) 在org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:245) 在org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1158) 在org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:587) 在org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:436) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 在org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:180) 在org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:482) 在org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:135) 在org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:137) 在org.eclipse.jetty.deploy.providers.ScanningAppProvider $ 1.fileAdded(ScanningAppProvider.java:50) 在org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:601) 在org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:531) 在org.eclipse.jetty.util.Scanner.scan(Scanner.java:394) 在org.eclipse.jetty.util.Scanner.doStart(Scanner.java:329) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:114) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:543) 在org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:218) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:41) 在org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:50) 在org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:94) 在org.eclipse.jetty.server.Server.doStart(Server.java:253) 在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 在org.eclipse.jetty.xml.XmlConfiguration $ 1.run(XmlConfiguration.java:1220) 在java.security.AccessController.doPrivileged(本地方法) 在org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1143) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601) 在org.eclipse.jetty.start.Main.invokeMain(Main.java:477) 在org.eclipse.jetty.start.Main.start(Main.java:623) 在org.eclipse.jetty.start.Main.parseCommandLine(Main.java:273) 在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 oejwWebAppContext {/,file:/home/manooja/jetty-hightide-7.4.0.v20110414/webapps/root/},/ home / manooja / jetty-hightide -7.4.0.v20110414 / web应用/根 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启动
请注意,默认端口已被更改为9080。
我有一个暗示,它可能是一些configuration更改,因为它在一台机器正常工作。 你能帮我解决这个问题吗?
java -jar start.jar –version
主动选项:[服务器,客户端,外部,jmx,jsp,资源,websocket] 版本信息关于类path中的25个条目。 注意:这里给出的顺序是它们将如何出现在类path中。 对OPTIONS = [option,option,...]命令行选项的更改将在这里反映出来。 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 /资源 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文件。
我从WEB-INF/lib
删除了Jar,在我的例子中是spring-webmvc-3.1.0.M1.jar
,然后重新启动jetty。它启动正常。
这在编译/编译期间显示出来的时候并没有被注意到(在eclipse中得到了这个jar),也没有出现在我部署的第一台机器上。
非常感谢您的帮助。
你可以改变你的项目配置,就像我使用这个页面的maven一样。 http://mvnrepository.com/artifact/redis.clients/jedis/2.8.1
然后,当你在eclipse et中使用“update maven project”的时候,它会下载编译器的jedis.jar和其他关系文件。 它将在码头解决问题。
在你直接使用Jetty作为Eclipse J2EE集成服务器的情况下,有时它不会找到一些库(我不明白为什么有些没有被发现,只有少数),并抛出这种异常(NoClassDefFound)。
所以你必须把项目源(目录WEB-INF):你的罐子
重新启动服务器
它将jar放入运行时WEB-INF:Data \ workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmpX \ MyApp \ WEB-INF \ lib
它的工作。