2
所以我有一個context.xml文件放在我的META-INF下。只有一個context.xml文件。Tomcat上下文和JDBC ...我做錯了什麼?
我的問題: 當我拉出來的InitialContext使用jdbc/myDataSource
的進入,我得到了非常普遍的例外「名稱JDBC是不是在這方面的約束」。當有人試圖使用jdbc/myDataSource
從InitialContext中獲取它時,如何設置Context/Tomcat以成功返回我的DataSourceFactory?
注意:我無法控制DataSourceFactory的獲取方式。 此外,我驗證了我可以通過java:comp/env/jdbc/myDataSource
訪問數據源。在context.xml中
上下文項文件看起來像這樣:
<Context shallowOutput="true" path="/">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/myDataSource"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
username="OMITTED"
password="OMITTED"
url="OMITTED"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
</Context>
在我的web.xml中的條目是這樣的:
<resource-ref>
<res-ref-name>jdbc/myDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
將java:/ jdbc/myDataSource放在'res-ref-name'或資源名稱中,還是兩者兼而有之? – Polaris878 2010-12-10 20:24:01
在web.xml和context.xml中命名將相同,但在訪問時我們需要將java:添加到任何jndi資源名稱。爲了從容器中訪問JNDI資源,我們將使用java:comp/env並設置其他上下文屬性 – 2010-12-10 20:25:39
正如問題所述,我無法控制資源的訪問方式......它將始終使用「jdbc/myDataSource」。所以,我需要配置我的Web.xml或Context.xml以使其工作。 – Polaris878 2010-12-10 20:30:47