2017-05-03 2 views
0

私はWildflyおよびWebSphereWildflyとWebsphereの両方で動作するJNDIデータソース名はどれですか?

アプリのwarファイルの両方として展開する必要のJava /春のWebアプリはJNDI名でデータソースを使用していました:

WebConfig.javaは含まれています

 

    public DataSource dataSource() { 
     final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup(); 
     dsLookup.setResourceRef(true); 
     DataSource dataSource = dsLookup.getDataSource("jdbc/myDS"); 

     return dataSource; 
    } 

... JNDIデータソース名が、jdbc/myDSのWebsphereで完全に実行されます。

しかしWildfly JNDI名のJava:/ 'で開始することがあるかのJava:JBossの/' WebConfig.javaを変更

は、作業を行います。

JNDIデータソース名が両方で動作します
DataSource dataSource = dsLookup.getDataSource("java:/myDS"); 

WildflyとWebsphere(そして多分他のアプリケーションサーバーに)

答えて

0

リソース参照を使ってルックアップを行うと、LibertyとWildflyの両方でjava:comp/envと相対的になります。

データソースを定義するには2通りの方法があります。 1つはjavax.annotation.Resourceアノテーションを使用しています。これは、型、メソッド、またはフィールド定義で使用できます。

また、resource-ref要素使用してweb.xmlファイルまたはejb-jar.xmlでそれを行うことができ

:あなたは、アプリケーション・コードres-auth要素でユーザーID /パスワードを提供している場合

<resource-ref> 
    <description /> 

    <res-ref-name>myRef</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

を含まなければならないApplication

+0

例を挙げることはできますか? – sgargel

関連する問題