2017-07-05 30 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,它工作。

我仍然不知道爲什麼它在我當地的碼頭安裝工作。一個隊友建議我可能與訂單上的每個機器上加載的罐子有關,但我不知道如何檢查。

相關問題