我有一個由許多模塊組成的Java EE應用程序。我試圖能夠進行間接JNDI查找。服務器找不到java:comp/env/jdbc/my_db數據源...在上下文中未找到名稱comp/env/jdbc「java:」
我按照這些步驟:
ejb-jar.xml中:在每個模塊中。我定義了一個企業bean。該模塊中的所有的DAO從該DAO繼承(MyDataAccessObject)
<enterprise-beans>
<session>
<ejb-name>DataAccessObject</ejb-name>
<ejb-class>com.mycompany.dao.MyDataAccessObject</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<resource-ref id="MyRef">
<description />
<res-ref-name>jdbc/My_db</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</session>
</enterprise-beans>
的persistence.xml:我在每個persistence.xml中定義(在每一個模塊)
<jta-data-source>java:comp/env/jdbc/My_db</jta-data-source>
ibm-application-bnd.xml
<resRefBindings xmi:id="MyRef" jndiName="jdbc/My_db">
?????? Should I use resRefBindings. If yes, how?
</resRefBindings>
什麼我應該添加到這個文件,Websphere知道java:comp/env/jdbc/My_db?
我已經做了足夠/正確的事嗎?
目前,如果我想啓動應用程序,我得到這個錯誤:
The server cannot locate the java:comp/env/jdbc/my_db data source for the My_Modul persistence unit because it has encountered the following exception:
Name comp/env/jdbc not found in context "java:".
編輯:我也發現了這個錯誤的事件文件:
Caused by: <openjpa-2.1.2-SNAPSHOT-r422266:1384519 fatal user error> org.apache.openjpa.persistence.ArgumentException: A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:76)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:844)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:602)
at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1510)
您是否嘗試在jta-data-source中使用'jdbc/My_db'?我承認我沒有完全做到這一點,但我認爲無論你如何映射它,你引用它的方式將通過'res-ref-name'。 (我們總是在部署時通過WebSphere控制檯映射引用,而不是通過創建綁定文件。) – dbreaux
WebSphere確實支持persistence.xml中的java:comp名稱,儘管我不相信這是由spec定義的。請顯示完整的例外情況(對於「目前我在部署時出現此錯誤」),這可能會提供額外提示,說明查找失敗的原因。 –
@bkail我在事件文件中添加了一個錯誤。它對你說了什麼嗎? – Kayser