我无法连接到部署到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。 –
谢谢!原来是一个端口问题。 –