2013-07-03 10 views
6

Chcę użyć konektora JDBC w mojej aplikacji sieci Web skonfigurowanej w produkcie WebSphere. (Tak jak tutaj: How to use JDBC in JavaEE?)Wyszukiwanie źródła danych JDBC w produkcie WebSphere 8.5

Użyłem tego DataSource przed przez JPA, ale nasz klient chce mieć natywny SQL ... nie pytaj.

Znalazłem wiele przykładów i samouczek (np. http://www.wickcentral.com/java/dl/ds_resreferencesetts_Websphere.pdf, Websphere JNDI lookup fails), ale nic nie chce pracować.

DataSource w WebSphere ma JNDI-name "jdbc/myDS"

Dodałem zasobów ref do mojego web.xml:

<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> 

I tryed, aby uzyskać DataSource w moja Dao:

ds = (DataSource) new InitialContext() 
       .lookup("java:comp/env/jdbc/myDS"); 

Ale co mam to

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. 

Spróbowałem dużo. Czy ktoś widział usterkę?

Odpowiedz

9

Czy podczas instalacji instalowałeś źródło danych zdefiniowane w aplikacji Websphere? Websphere zazwyczaj prosi o powiązanie zasobów po ich wykryciu w procesie instalacji (jeśli dobrze pamiętam, znajduje się w kroku o nazwie "Odwzoruj zasoby odniesienia na zasoby").

Innym częstym problemem jest źródło danych Websphere w innym kontekście (komórka/węzeł/serwer) niż aplikacja, więc nie można go znaleźć w środowisku wykonawczym.

+4

Dziękuję bardzo dużo. To było rozwiązanie. Kiedy się rozwijam, wdrażam aplikację za pomocą złącza Eclipse. Nie będzie kroku "Odwzoruj zasoby referencyjne na zasoby". Jeśli chcesz wdrożyć za pomocą złącza Eclipse, musisz utworzyć plik o nazwie ibm-web-bnd.xml w swoim folderze web-inf i dodać wiersz user2546624

+0

Miło mi pomóc: P –

2

Trzeba dodać wiązania w ibm-web-bnd.xml:

<resource-ref name="jdbc/myDS" binding-name="jdbc/myDS" />