10

我正在尝试在码头服务器中托管我的 webapp(spring)。我将我的战争文件复制到码头服务器中的“webapp”文件夹中。我不是试图嵌入码头服务器,而是试图在码头内托管应用程序(如 tomcat)。

我尝试安装码头,我刚刚下载了 jetty7 zip 并解压缩以获取服务器。

我需要在 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::Unable to reach node goal: 开始
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(Native Method)
    在 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(Native Method)
    在 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(Native Method)
    在 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(Native Method)
    在 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 添加:/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/webapps/root
2013-04-24 18:52:59.861:INFO::Deployment monitor /home/manooja/jetty-hightide-7.4.0.v20110414/contexts 间隔 1
2013-04-24 18:52:59.950:INFO::Started SelectChannelConnector@0.0.0.0:9080 开始

请注意,默认端口已更改为 9080。

我有一种预感,它可能是一些配置更改,因为它在一台机器上运行良好。你能帮我指导解决这个问题吗?

java -jar start.jar --version

    活动选项:[服务器、客户端、ext、jmx、jsp、资源、websocket]
    类路径中 25 个条目的版本信息。
    注意:此处显示的顺序是它们在类路径中的显示方式。
          对 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:(目录)| ${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

目录 ./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
4

3 回答 3

4

正如 Stevie 在评论中指出的那样,问题是一个额外的 Jar 文件进入了战争。

我从我的情况下删除了 Jarspring-webmvc-3.1.0.M1.jarWEB-INF/lib重新启动了码头。它开始正常。

这没有引起注意,因为它在编译/构建期间出现(在 eclipse 中订购了 jar),也没有出现在我部署的第一台机器上。

非常感谢您的帮助。

于 2013-04-25T15:36:17.617 回答
0

您可以更改您的项目配置,就像我使用 maven like this page。 http://mvnrepository.com/artifact/redis.clients/jedis/2.8.1

然后,当你在 eclipse et 中使用“更新 maven 项目”时,它会下载 jedis.jar 和其他关系文件供编译器使用。它将在码头工作以解决问题。

于 2016-06-21T10:29:43.393 回答
0

在直接使用jetty作为Eclipse J2EE集成服务器的情况下,有时会找不到一些库(我不明白为什么有些找不到,只有少数),并抛出这种异常(NoClassDefFound)。

  • 所以你必须放入项目源(目录WEB-INF):你的罐子

  • 重启服务器

  • 它将罐子放在运行时 WEB-INF:Data\workspace.metadata.plugins\org.eclipse.wst.server.core\tmpX\MyApp\WEB-INF\lib

  • 它有效。

于 2017-11-16T21:22:19.540 回答