1

用tomcat有点麻烦。我有一个 tomcat 应用程序,它为一些需要肥皂接口的数据公开了一个肥皂接口。到目前为止一切都很好。在测试中一切正常。

我安装的时候有问题。我想更改数据库连接以指向实时数据库框。所以我编辑了 context.xml 并重新加载了应用程序。实际上我已经关闭并重新启动了tomcat,以防万一。

这是我的原始上下文

    <Context>

  <Resource name="jdbc/tclsms" auth="Container" type="oracle.jdbc.pool.OracleDataSource"
               maxActive="20" maxIdle="10" maxWait="100"
               user="***" password="***" driverClassName="oracle.jdbc.OracleDriver"
               url="jdbc:oracle:thin:@tcl-sms:1521:smf"
               factory="oracle.jdbc.pool.OracleDataSourceFactory"
               />

  <!-- factory="org.apache.commons.dbcp.BasicDataSourceFactory" -->           

</Context>

然后我把它改成这个

<Context>

  <Resource name="jdbc/tclsms" auth="Container" type="oracle.jdbc.pool.OracleDataSource"
               maxActive="20" maxIdle="10" maxWait="100"
               user="***" password="***" driverClassName="oracle.jdbc.OracleDriver"
               url="jdbc:oracle:thin:@10.40.125.150:1521:smf"
               factory="oracle.jdbc.pool.OracleDataSourceFactory"
               />

  <!-- factory="org.apache.commons.dbcp.BasicDataSourceFactory" -->           

</Context>

(密码和用户在实际设置中不是* )

进行更改并重新加载后的任何方式。我收到一个错误,在错误中它告诉我它无法解析 tcl-sms。

是否有任何理由 tomcat 不会加载新的 context.xml

我通过具有原始 context.xml 的 war 文件部署的更多信息。部署后,我进入了 webapps 文件夹并编辑了上下文。

测试系统是 Ubuntu,实时系统是 Solaris(如果有什么不同的话)

4

1 回答 1

0

发现了问题。我想我最好在这里发帖,以防其他人遇到同样的事情。

这就是发生的事情。部署后,tomcat 在 webapps 中创建了一个文件夹。这个文件夹以我的应用程序命名,有 META-INF 和 WEB-INF 文件夹。在那里我找到了我的 context.xml 并愉快地开始编辑。

然而它仍在寻找错误的数据库主机。所以我接下来要做的是在 tomcat 目录中为该主机 grep。没什么,所以我认为该文件不能在war文件以外的任何地方定义。我错了。我的应用程序还有另一个 context.xml,但我没有读取权限,因此 grep 失败。

然后我找到了这个http://tomcat.10.x6.nabble.com/context-xml-not-read-td2116658.html。原来在 $CATALINA_BASE/conf///.xml 中有这个 webapp 的预先存在的 context.xml

编辑了那个文件,一切正常。不知道为什么tomcat会这样做....

于 2013-05-22T22:37:42.477 回答