首页 文章

我需要为多个Tomcat实例更改哪些配置才能使用单独的context.xml文件?

提问于
浏览
0

我已经在同一台Windows机器上的不同端口上设置了两个tomcat实例 . 一个用于Alpha,另一个用于开发 . 我已经将Alpha和Dev战争(相同的应用程序名称,META-INF / context.xml中的不同设置)部署到每个服务器 .

Tomcat目录具有完全相同的内容,除了:

  • 部署的战争是不同的(我开始新鲜,删除了webapps / * war文件和dirs)

  • conf / server.xml文件不同(设置不同的端口)

  • bin / catalina.bat文件不同(将CATALINA_HOME更改为每个实例的完整路径)

其余的都是一样的 .

问题是每个战争的META-INF / context.xml文件指向不同的数据库,一个用于dev,一个用于alpha . 更具体地说,连接URL是不同的,更具体地说,只有数据库名称不同(斜杠和URL的问号之间的字符串) .

但是,在由于某种原因启动这两个实例后,它们同时指向Dev数据库 . 也就是说,它们都可能是读取Dev context.xml,可能是相同的webapps / AppName文件夹

怎么可能?

当我启动Dev tomcat时,控制台显示CATALINA_HOME,CATALINA_BASE,CATALINA_TMPDIR和CLASSPATH的值,它们都显示Dev tomcat目录的完整路径 .

当我启动Alpha tomcat时,控制台也会显示这些变量的值,并且它们都显示到Alpha tomcat目录的完整路径(因此路径似乎没问题) .

我检查了部署的alpha_tomcat_dir / webapps / AppName / META-INF / context.xml文件,它显示了alpha数据库配置 .

但在运行时它仍然使用Dev数据库的db信息 .

我还应该在哪儿看?

这些是context.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Context>

    <Resource name="jdbc/hng" 
        auth="Container"
        driverClassName="com.mysql.jdbc.Driver" 
        type="javax.sql.DataSource"

        maxActive="60" 
        minIdle="5"
        maxIdle="60" 
        maxWait="10000"
        testOnBorrow="true" 
        testOnReturn="true"
        testWhileIdle="true" 
        validationQuery="SELECT 1"
        timeBetweenEvictionRunsMillis="20000" 
        minEvictableIdleTimeMillis="300000"
        removeAbandoned="true" 
        removeAbandonedTimeout="180"
        logAbandoned="true"

        username="root"
        password="<removed>" 

        url="jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true&amp;autoReconnectForPools=true" />

</Context>

这些文件仅在数据库名称上有所不同 . 它是dev的“hngdev”和alpha的“hngalpha”(而不是dbname)

2 回答

  • 0

    如果您100%确定上下文内容是正确的,

    然后我会说检查数据库服务器中的设置 .

    可能是你在数据库服务器中创建了错误的用户?给予alpha用户和开发者用户相同的权限 . 也许你复制粘贴相同的授权用户查询?

    您还可以尝试将alpha上下文中的数据库信息更改为某些错误的用户信息/端口 . 它还能连接吗?

  • 0

    问题是我有一个context.xml文件,等于$ CATALINA_BASE / conf / [enginename] / [hostname] / [webappname] .xml中的开发环境

    由于我的server.xml配置,在复制整个tomcat目录结构以创建alpha tomcat环境之前,上下文描述符曾被复制到那里 . 由于我的server.xml配置,它没有更新应用程序的新部署 . 数据源信息是从$ CATALINA_BASE / conf / [enginename] / [hostname] / [webappname] .xml中读取的,我不知道或期望 .

    以下是上下文和部署如何在不同服务器配置上工作的详细说明:

    http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

相关问题