2017-08-28 8 views
1

ローカルJNDI(サービスとJNDIを使用するサーバー)からDataSourceを使用するサービスが開発されました。springdatasource.jndi-name JNDIを使用する別のIPサーバーから

春::データソース:
JNDI名:javaの:

は春ブーツでは、この情報は次のように宣言されている/コンプ/ ENV/JDBC/MyLocalDB

私が知りたい

春::データソース:
JNDI名:javaの:192.1このような何かを行うことが可能である場合68.0.1:8080 /コンプ/ ENV/JDBC/MyLocalDB

おかげ

答えて

0

JNDIは、アクセスディレクトリへのAPIです。アプリケーションサーバーには、アプリケーション、データソース、およびEJB Beanの情報を保持するためのディレクトリが含まれています。 JNDIを使用すると、他のタイプのディレクトリにアクセスすることができます。たとえば、Active DirectoyおよびLDAPディレクトリサーバーのユーザー情報にアクセスするために使用できます。

これらのJNDIディレクトリにアクセスし、コンフィグレーションデータやRMIリモート参照などのデータを取得してEJB Beanを呼び出すクライアントプログラムを作成できます。

を使用すると、クライアントプログラムを作成している場合、あなたはdefine an InitialContextあなたのプログラムが使用するJNDIディレクトリを記述することができ、リモートJNDIディレクトリに

にアクセスします。コンフィグレーションでHashtableを定義し、Context.PROVIDER_URLを定義し、InitialContextを作成する必要があります。

たとえば、access information in an LDAP directoryというプログラムを作成できます。

使用するライブラリによっては、JNDIリモートホストを記述する構成ファイルを定義できます。たとえば、JBoss EJB Client libraryの場合はjboss-ejb-client.propertiesというファイルを定義できます。グラスフィッシュはjndi.properties fileを使用します。

アクセスリモートリソース

リソースプログラムは、プログラムコードの位置とは無関係にアクセスする必要があること(例えば、画像、オーディオ、またはテキスト)データです。 JNDI APIまたは@Resource annotationを使用して情報にアクセスできます。

たとえば、APIを使用してLDAPディレクトリ内のユーザーのデータを要求できます。リモートEJB

あなたはaccess EJBs with remote interfaces located in other VMsをすることができますへのアクセス

try { 

    // Create the initial directory context 
    DirContext ctx = new InitialDirContext(env); 

    // Ask for all attributes of the object 
    Attributes attrs = ctx.getAttributes("cn=Ted Geisel, ou=People"); 

    // Find the surname attribute ("sn") and print it 
    System.out.println("sn: " + attrs.get("sn").get()); 

} catch (NamingException e) { 
    System.err.println("Problem getting attribute:" + e); 
} 

。一方では、CORBAスタイルのリモートインタフェースを使用してEJBを作成し、サーバのjava:名前空間にEJBを登録する必要があります。一方、アプリケーションはcorbaname URLを使用してこれらのBeanにアクセスできます。あなたがEJBを定義する場合は、WebSphere /リバティで

は、にバインド:

java:global/ExampleApp/ExampleModule/ExampleBean!com.ibm.example.ExampleRemoteInterface 
java:app/ExampleModule/ExampleBean!com.ibm.example.ExampleRemoteInterface  
java:module/ExampleBean!com.ibm.example.ExampleRemoteInterface 

あなたはこれらの

corbaname::test.ibm.com:2809#ejb/global/ExampleApp/ExampleModule/ExampleHomeBean!com.ibm.example.ExampleEJBHome 
corbaname:rir:#ejb/global/ExampleApp/ExampleModule/ExampleHomeBean!com.ibm.example.ExampleEJBHome 

詳細な構成を(メソッドを呼び出すために)RMI-IIOPを使用してリモートEJBにアクセスすることができますリモートEJBはアプリケーションサーバーごとに異なる場合があります。 Glassfishを使用している場合は、documentationを確認できます。 example in the Oracle blogsがあります。

クラスタを構成する場合は、クラスタ内のノードの名前を使用するその他の多くのファイルがあります(options to access the remote resources)。サーバーで定義された

データソースは、リモートでアクセスすることができないリモートデータソースにアクセス

。 JNDIディレクトリにデータソースの設定を保持する場合は、解決方法はcustom class that implements the DataSource interfaceと定義できます。クライアントは、サーバーからデータソース構成を取得し、その接続を使用してローカルデータベース接続を作成できます。

関連する問題