2013-07-03 12 views
6

Desidero utilizzare una connessione JDBC nella mia webapp che è configurata in WebSphere. (Come questo qui: How to use JDBC in JavaEE?)Ricerca di un DataSource JDBC in WebSphere 8.5

avevo usato questo DataSource prima via JPA, ma il nostro cliente vuole avere SQL nativo ... non chiedere.

Ho trovato molti esempi e tutorial (ad esempio http://www.wickcentral.com/java/dl/ds_resreferencesetts_Websphere.pdf, Websphere JNDI lookup fails) ma nulla vuole funzionare.

Il DataSource in WebSphere ha la JNDI-name "jdbc/myDS"

ho aggiunto una risorsa-ref al mio 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> 

E ho provato a ottenere il DataSource in il mio Dao:

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

Ma quello che ottengo è un

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. 

Ho provato molto. Qualcuno ha visto l'errore?

risposta

9

Hai abbinato l'origine dati definita dall'app Web con un'origine dati definita da Websphere durante l'installazione? In genere, Websphere richiede di associare le risorse quando vengono rilevate durante il processo di installazione (se non ricordo male, è nel passaggio denominato "Mappa risorse di riferimento alle risorse").

Altro problema comune è un'origine dati Websphere in un contesto diverso (cella/nodo/server) rispetto all'app, quindi non può essere trovata in fase di esecuzione.

+4

Grazie davvero tanto. Questa era la soluzione. Quando sviluppo, distribuisco l'applicazione tramite il connettore eclipse. Non ci sarà alcun passo come "Mappa risorse di riferimento alle risorse". Se si desidera eseguire la distribuzione tramite connettore eclipse, è necessario creare un file denominato ibm-web-bnd.xml nella cartella web-inf e aggiungere la riga user2546624

+0

Felice di aiutare: P –

2

è necessario aggiungere il legame in ibm-web-bnd.xml:

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