[英]Lookup a JDBC DataSource in WebSphere 8.5
我想在我的webapp中使用JDBC Connetion,這是在WebSphere中配置的。 (就像這里的那個 : 如何在JavaEE中使用JDBC? )
我之前通過JPA使用過這個DataSource,但是我們的客戶希望擁有原生SQL ...不要問。
我發現了很多示例和教程(例如http://www.wickcentral.com/java/dl/ds_resreferencesetts_Websphere.pdf,Websphere JNDI查找失敗 )但是沒有什么可以工作的。
WebSphere中的DataSource具有JNDI名稱“jdbc / myDS”
我在我的web.xml中添加了一個resource-ref:
<resource-ref>
<res-ref-name>jdbc/myDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我試着在我的Dao中獲取DataSource:
ds = (DataSource) new InitialContext()
.lookup("java:comp/env/jdbc/myDS");
但我得到的是一個
com.ibm.wsspi.injectionengine.InjectionException: CWNEN0044E: A resource reference binding could not be found for the following resource references [jdbc/myDS], defined for the MyAPP component.
我嘗試了很多。 有沒有人看到這個錯誤?
在安裝過程中,您是否將Web-app定義的數據源與Websphere定義的數據源匹配? Websphere通常會要求您在安裝過程中檢測到資源時綁定資源(如果我沒記錯的話,它位於名為“將參考資源映射到資源”的步驟中)。
其他常見問題是與您的應用程序不同的上下文(Cell / Node / Server)中的Websphere數據源,因此無法在運行時找到它。
您需要在ibm-web-bnd.xml中添加綁定:
<resource-ref name="jdbc/myDS" binding-name="jdbc/myDS" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.