我们正在尝试从war文件中获取特定于环境的配置设置,因此我们可以将相同的war文件部署到dev / test / prod tomcat服务器,而不必更改war配置文件的内容。
当我将数据库连接的META-INF / context.xml移动到conf / server.xml时,数据库连接不再有效,出现以下错误,有人知道为什么会这样吗?
server.xml中:
<GlobalNamingResources>
....
<Resource
url="jdbc:oracle:thin:@hostname:1521/something"
username="username"
name="jdbc/mydb"
password="password"
auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="5" maxIdle="2" maxWait="10000"
removeAbandoned="true"
type="javax.sql.DataSource"
/>
</GlobalNamingResources>
错误如下:
INFO: Deploying web application directory ROOT
Problem reading system configuration. Cannot create JDBC driver of class '' for connect URL 'null' (java.io.IOException: Cannot create JDBC driver of class '' for connect URL 'null')
java.io.IOException: Cannot create JDBC driver of class '' for connect URL 'null'
at au.edu.unimelb.helper.SettingManager.loadSettings(SettingManager.java:212)
at au.edu.unimelb.helper.SettingManager.<init>(SettingManager.java:53)
(是的,odjbc6.jar文件在$ TOMCAT_HOME / lib /中)
答案 0 :(得分:3)
最后解决了,tomcat文档有点误导。您可以将META-INF/context.xml
的内容直接放入$TOMCAT_HOME/conf/context.xml
,它就可以了。
答案 1 :(得分:0)
context.xml中可能缺少<ResourceLink>
(在网络应用程序的META-INF/context.xml
或$TOMCAT_HOME/conf/context.xml
中),如下所示:
<ResourceLink name="jdbc/mydb"
type="javax.sql.DataSource"
global="jdbc/mydb"/>