与tomcat有点麻烦。我有一个tomcat应用程序,它为一些需要soap接口的数据公开soap接口。到目前为止都很好。在测试中一切正常。
安装时出现问题。我想将数据库连接更改为指向实时数据库框。所以我编辑了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(如果这有任何区别)
答案 0 :(得分: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。事实证明,这个Web应用程序有一个预先存在的context.xml $ CATALINA_BASE / CONF ///。XML
编辑该文件并且一切正常。不知道为什么tomcat这样做....