首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Spark-Java (Gradle、Maven)应用程序部署到AWS Elastic Beanstalk

将Spark-Java (Gradle、Maven)应用程序部署到AWS Elastic Beanstalk
EN

Stack Overflow用户
提问于 2017-10-13 05:13:27
回答 2查看 388关注 0票数 0

我无法连接到部署到AWS Elastic Beanstalk的java应用程序的端点。该应用程序处理大量POST请求,旨在为移动应用程序提供服务,因此服务器本身没有任何静态文件。我使用的是Spark Java框架,当我在Localhost上测试时,它会正确地找到端点,但在AWS Elastic Beanstalk上就不会了。

我可以将分解的war部署到EB (运行Tomcat Web服务器)上,但是我发送的所有请求都会返回一个404错误: Resource not Found。Spark java运行在嵌入式Jetty服务器上,所以为了在Tomcat上运行,我按照他们的文档(http://sparkjava.com/documentation#other-web-server)中的建议做了:我已经实现了SparkApplication接口,将所有端点从main()移动到init(),并将建议的代码添加到web.xml文件中。

上传的.war包含带有web.xml、lib (带有gradle库)和类(带有我的编译输出)的META-INF。同样,没有静态文件。

更多详细信息:

我使用Elastic Beanstalk IntelliJ (旗舰版)插件进行部署,此时我测试了这与直接在EB仪表板上部署.war没有什么不同。我已在安全设置中打开所有端口和连接,以丢弃任何连接问题。我认为这只是servlet没有映射urls的问题。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-10-13 06:02:19

在本地机器上运行它,确保你的连接是正确的。我最近做了这件事- Spark Java on Beanstalk,但我认为我将其部署为jar。Beanstalk只支持直接的java jar (前面加上了nginx)。我认为当我作为jar部署时,我确实需要做一些事情来指定Spark Java默认使用的监听端口4567。

我也曾在Tomcat中将Spark Java作为war运行,但我不认为是在AWS上--我相信在这种情况下,我是作为jar部署的。

票数 0
EN

Stack Overflow用户

发布于 2017-10-16 23:26:09

解决了!我在主类中编写了更改端口的代码。虽然这是在本地环境中运行所必需的,但它与自动分配端口的AWS冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46718987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档