拥有Webapp的多个别名

时间:2013-05-24 08:28:19

标签: apache tomcat

我在Apache tomcat中部署了一个应用程序。假设项目名称是abc(或从abc.war部署)。

我使用url访问它:=> http://localhost:8080/abc/

但我想重定向或拥有网络应用的别名。喜欢

http://localhost:8080/abc/ http://localhost:8080/abc1/ http://localhost:8080/abc2/ http://localhost:8080/abc3/

以上所有引用同一个Web应用程序。我怎么能这样做,我不想复制粘贴文件夹多次并重命名。

〜感谢

2 个答案:

答案 0 :(得分:0)

最好的解决方案是不使用warfile。 将所有内容复制到指定目录(即\user\abc),然后您可以通过两种方式配置所有上下文。

  • 每个要映射的上下文的xml,将其放入:%CATALINA_HOME%\conf\Catalina\localhost。请记住,xml文件的名称将是您的webapp的映射,但您可以使用xml中的path属性重新定义它。在您的情况下,您必须生成abc.xmlabc1.xmlabc2.xml,其内容应为:

      

    abc.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="\user\abc" path="abc" reloadable="false"/>
    
      

    abc1.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="\user\abc" path="abc1" reloadable="false"/>
    
  • 您可以通过在%CATALINA_HOME%\conf\server.xml标记内插入上下文定义来直接编辑<Host ...>,如下所示:

    <Host ...>
        <Context docBase="\user\abc" path="abc" reloadable="false"/>
        <Context docBase="\user\abc" path="abc1" reloadable="false"/>
    </Host>
    

如果您需要向上下文提供数据库数据源信息,只需将标记Resource添加到上下文定义本身(在xml文件或server.xml中),在这里您可以使用示例:

<Context docBase="\user\abc" path="abc" reloadable="false">
    <Resource auth="Container" description="DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        maxActive="4"
        maxIdle="2"
        maxWait="5000"
        name="jdbc/myJNDIname"
        password="mypass"
        type="javax.sql.DataSource"
        url="jdbc:oracle:thin:@host:port:SID"
        username="myuser"/>
</Context>

如果你需要这个最后一部分,显然,只要你想要复制的每个上下文都使用它。

希望它有所帮助。

答案 1 :(得分:0)

最简单的方法是创建应用程序的软链接目录,像这样

ln -s $PWD/abc $PWD/abc1
ln -s $PWD/abc $PWD/abc2
ln -s $PWD/abc $PWD/abc3
相关问题