bre*_*ght 5 java tomcat amazon-ec2 amazon-web-services amazon-elastic-beanstalk
我们正在从遗留系统部署webapp(.war文件),我们可以完全控制我们的Tomcat实例到Amazon的Elastic Beanstalk实例.
在我们自己的系统上,我们访问Web应用程序作为路径(例如,http://server-name/my-app
如果我们部署my-app.war),但Elastic Beanstalk将我们的war文件重命名为ROOT.war,从而使Web应用程序可用http://server-name
,这打破了我们现有的应用.
根据AWS文档,我们在其下添加了一个配置文件WEB-INF/.ebextensions
,将以下自定义context.xml
文件复制到/etc/tomcat7/Catalina/localhost/ROOT.xml
:
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="localhost" docBase="" path="/my-app">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
Run Code Online (Sandbox Code Playgroud)
我们尝试过这个文件的不同版本,例如省略docBase,指定docBase="ROOT"
,使用aliases
参数等,提供ROOT目录等的完整路径,但没有一个使我们的WAR文件可以在/my-app
路径下访问.
最后,我们还尝试将此<Context />
-definition置于该<Host />
部分下server.xml
,但无济于事.有什么建议?
更新:在-definition server.xml
下添加以下内容时<Host/>
,我可以my-app
在正确的路径下访问,但似乎EB上的Tomcat现在正在部署我的应用程序两次:
<Context path="/my-app" docBase="ROOT/"></Context>
Run Code Online (Sandbox Code Playgroud)
虽然我们现在可以在所需的路径下访问我们的应用程序,但该应用程序仍然被 Tomcat 部署了两次。虽然这对我们来说是一个小麻烦,但我可以想象这在资源紧张的机器上是一个问题。从好的方面来说,我们现在可以开始迁移我们的应用程序,在访问 API 时不再使用资源路径,这会导致 API URL 更干净、更短。
归档时间: |
|
查看次数: |
2623 次 |
最近记录: |