我在server.xml
<Context path="" reloadable="true" docBase="my-module"/>
我需要为此应用程序指定上下文。我尝试将my-module.xml
和ROOT.xml
添加到conf/Catalina/localhost
,但这并没有解决我的问题。
我仍然收到错误
意外异常:名称[jdbc / my-module]未绑定在此中 语境。无法找到[jdbc]
我的context.xml
<Context>
<Resource
name="jdbc/my-module"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="AFE"
password="AFE"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@my-server:1537:DB"
defaultAutoCommit="false" />
</Context>
如何为root应用程序指定上下文?
答案 0 :(得分:0)
实际上,您不能手动编辑server.xml。执行serever pool后,必须自动添加它。 Context.xml必须位于META-INF文件夹中.Server tomcat。
<Context>
<Resource name="jdbc/DATABASE"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="test" password="test"
driverClassName="org.apache.derby.jdbc.ClientDriver"
defaultAutoCommit="false"
defaultTransactionIsolation="READ_COMMITTED"
connectionProperties="useUnicode=yes;characterEncoding=utf8;"
url="jdbc:derby://localhost/DataBase"/>
</Context>
和此处的连接代码
private static DBConnector instance;
public static synchronized DBConnector getInstance() {
if (instance == null) {
instance = new DBConnector();
}
return instance;
}
private DBConnector(){
try {
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
// DATABASE - the name of data source
ds = (DataSource) envContext.lookup("jdbc/DATABASE");
} catch (NamingException ex) {
System.out.println(ex);
}
}
private DataSource ds;