我無法連接到部署到AWS Elastic Beanstalk的Java應用程序的端點。該應用程序處理多個POST請求,旨在爲移動應用程序提供服務,因此服務器本身沒有任何靜態文件。我使用Spark Java框架,當我在Localhost上測試時發現端點正確,但不在AWS Elastic Beanstalk上。將Spark-Java(Gradle,Maven)應用程序部署到AWS Elastic Beanstalk
我可以將爆炸戰爭部署到EB(運行Tomcat Web服務器),但是我發送的所有請求都返回404錯誤:資源未找到。 Spark Java在嵌入式Jetty服務器上運行,所以要在Tomcat上運行,我按照他們的文檔(http://sparkjava.com/documentation#other-web-server)中的建議完成:我已經實現了SparkApplication接口,將所有端點從main()移動到init(),並添加了建議的代碼到web.xml文件。
上傳的.war包含META-INF和web.xml,lib(帶有gradle庫)和classes(帶有我編譯的輸出)。再次,沒有靜態文件。
更多細節:
我使用彈性豆莖的IntelliJ(終極)插件部署和在這一點上我測試,這是沒有從直接在EB儀表盤部署一個.war不同。我已經打開所有端口和安全設置連接,以放棄任何連接問題。我相信這只是servlet沒有繪製URL的問題。有什麼建議麼?
好吧,讓我試試.jar –
這是AWS的一個選項,更適合Spark Java。我已經在Tomcat下運行了Spark作爲一場戰爭 - 但要記住的一點是,作爲戰爭的Tomcat會給出一個上下文,這是您在REST API路徑之前必須添加到URL的戰爭名稱。所以如果你在8090上有blah.war,localhost:8090/blah/myrestpath,不是localhost:8090/myrestpath。 –
謝謝!原來是一個端口問題。 –