2017-07-05 47 views
1

我有一个产生.war应用程序的maven项目。当我在本地安装jetty9中部署这场战争时,应用程序可以正常工作。在AWS中部署到我的计算机时,无法启动以下错误。WAR在AWS的jetty9上无法启动,但是可以在本地安装

2017-07-05 17:53:43.336:WARN:oejuc.AbstractLifeCycle:main: FAILED [email protected]{/my-app,file:/var/cache/jetty9/data/jetty-0.0.0.0-8080-my-app.war-_my-app-any-5436545420435013189.dir/webapp/,STARTING}{/my-app.war}: java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map; 
java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map; 
     at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:331) 
     at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392) 
     at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177) 
     at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369) 

这是泽西岛2应用程序,它通过写在泽西1.老客户了,我已经有新泽西州的两个版本之间的冲突,并使用maven排除为indicated here解决他们另一个API通信,以及解决这个问题在本地,但由于某种原因,现在我部署失败。

我没有发现两种环境之间的差异。我跑java -jar /usr/share/jetty9/start.java --version,结果是相同的(我显示差异吧)在两台机器:

Jetty Server Classpath: 
----------------------- 
Version Information on 38 entries in the classpath. 
Note: order presented here is how they would appear on the classpath. 
     changes to the --module=name command line options will be reflected here. 
0:   (none specified) | ${jetty.home}/eclipse-ecj-3.11.0.jar 
1:   9.2.18.v20160721 | ${jetty.home}/jetty9-apache-jsp.jar 
2:     1.2.5 | ${jetty.home}/taglibs-standard-impl.jar 
3:     1.2.5 | ${jetty.home}/taglibs-standard-spec.jar 
4:     8.0.37 | ${jetty.home}/tomcat8-api-8.0.37.jar 
5:     3.0.FR | ${jetty.home}/tomcat8-el-api-8.0.37.jar 
6:     8.0.37 | ${jetty.home}/tomcat8-jasper-8.0.37.jar 
7:     8.0.37 | ${jetty.home}/tomcat8-jasper-el-8.0.37.jar 
8:     2.3.FR | ${jetty.home}/tomcat8-jsp-api-8.0.37.jar 
9:     8.0.37 | ${jetty.home}/tomcat8-juli-8.0.37.jar 
10:     8.0.37 | ${jetty.home}/tomcat8-util-8.0.37.jar 
11:     8.0.37 | ${jetty.home}/tomcat8-util-scan-8.0.37.jar 
12:     (dir) | ${jetty.base}/resources 
13:     3.1.FR | ${jetty.home}/servlet-api-3.1.jar 
14:   9.2.18.v20160721 | ${jetty.home}/jetty9-http.jar 
15:   9.2.18.v20160721 | ${jetty.home}/jetty9-server.jar 
16:   9.2.18.v20160721 | ${jetty.home}/jetty9-xml.jar 
17:   9.2.18.v20160721 | ${jetty.home}/jetty9-util.jar 
18:   9.2.18.v20160721 | ${jetty.home}/jetty9-io.jar 
19:   9.2.18.v20160721 | ${jetty.home}/jetty9-jndi.jar 
20:     1.5.6 | ${jetty.home}/javax.mail.jar 
21:   9.2.18.v20160721 | ${jetty.home}/jetty9-security.jar 
22:   9.2.18.v20160721 | ${jetty.home}/jetty9-servlet.jar 
23:   9.2.18.v20160721 | ${jetty.home}/jetty9-webapp.jar 
24:   9.2.18.v20160721 | ${jetty.home}/jetty9-deploy.jar 
25:   9.2.18.v20160721 | ${jetty.home}/jetty9-plus.jar 
26:   9.2.18.v20160721 | ${jetty.home}/jetty9-annotations.jar 
27:     3.0.FR | ${jetty.home}/tomcat8-annotations-api-8.0.37.jar 
28:      5.1 | ${jetty.home}/asm-commons-5.1.jar 
29:      5.1 | ${jetty.home}/asm-5.1.jar 
30:     1.1.FR | ${jetty.home}/tomcat8-websocket-api-8.0.37.jar 
31:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-client-impl.jar 
32:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-server-impl.jar 
33:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-api.jar 
34:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-client.jar 
35:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-common.jar 
36:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-server.jar 
37:   9.2.18.v20160721 | ${jetty.home}/jetty9-websocket-servlet.jar 

我的问题是:这可能是在AWS机,可能会导致这个错误有什么不同?我应该在哪里寻找更多的信息来解决这个问题?

+1

看起来像某种版本的不匹配 –

+0

您在AWS上部署WAR的servlet容器的版本是什么? –

+0

这是码头9.2.18-1 – jspurim

回答

0

显然排除的内容没有正确配置。我排除了com.sun.jersey:jersey-server,但javax.ws.rs:jsr311-api被纳入为com.sun.jersey:jersey-client的传递依赖项。我明确排除了javax.ws.rs:jsr311-api,它工作。

我仍然不知道为什么它在我当地的码头安装工作。一个队友建议我可能与订单上的每个机器上加载的罐子有关,但我不知道如何检查。

相关问题