提问者:小点点

使用AWS弹性豆茎时编辑应用程序路径


使用本地tomcat,我的应用程序url是:超文本传输协议://ip: port/myapp,但是当将其部署到AWSElastic Beanstik时,url变得http://some_domain.com。我希望urlhttp://some_domain.com/myapp.

我该怎么做?我发现了一些关于将一些配置文件添加到. eb扩展的内容,但我不确定我到底应该做什么以及它是否有帮助。

更新:

我创建了一个. eb扩展文件夹并放置了以下文件:

服务器. xml

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
    <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
    <Listener className="org.apache.catalina.core.JasperListener"/>
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
    <GlobalNamingResources>
        <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
    </GlobalNamingResources>
    <Service name="Catalina">
        <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
        <Engine defaultHost="localhost" name="Catalina">
            <Realm className="org.apache.catalina.realm.LockOutRealm">
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
            </Realm>
            <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
                <Context docBase="EizeRest" path="/EizeRest" reloadable="true" source="org.eclipse.jst.jee.server:EizeRest"/>
            </Host>
        </Engine>
    </Service>
</Server>

server-update. config

container_commands: 
  replace-config: 
    command: cp .ebextensions/server.xml /etc/tomcat7/server.xml 

部署时,我收到以下错误:

“aws无法检测应用程序部署”

另一个更新:

我在服务器的事件选项卡中看到以下错误:不能stat'. ebexsionsions/server.xml':没有这样的文件或目录


共2个答案

匿名用户

我认为您需要采取以下步骤:

  1. 创建一个设置path=myapp
  2. 的Tomcat服务器. xml文件
  3. 在部署阶段将此文件复制到beanstatk

豆茎留档在这里提供了一个相关的指南:http://aws.typepad.com/aws/2012/10/customize-elastic-beanstalk-using-configuration-files.html

基本上,指南说您需要通过在应用程序根目录中创建以下文件来将server. xml复制到beanstik:.ebextenstions/tomcat.config

container_commands: 
  replace-config: 
    command: cp .ebextensions/server.xml /etc/tomcat7/server.xml 

不要忘记将server. xmltomcat.config文件都提交到.eb扩展文件夹中。

匿名用户

您必须将您的“. eb扩展”文件夹放置在与您的WEB-INF文件夹相同的级别。这样做将删除“.eb扩展/server.xml:没有这样的文件或目录”错误。