1

リモートEJB呼び出しの理解を深めようとしています。

このようなコードが機能していて、サーバーでリモートJNDIルックアップを実行します。

private InitialContext jndiContext;    
private AdderBeanRemote bean1;

Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("org.omg.CORBA.ORBInitialHost", "10.0.0.99");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
jndiContext = new InitialContext(props);
bean1 = (AdderBeanRemote) jndiContext.lookup("com.suspectclass.sgifford.test8bean.AdderBeanRemote");

しかし、それは複雑な方法のようであり、多くのアプリケーション固有のデータを私のアプリケーションにハードコードします。たとえば、別のサーバーを使用したり、ネットワークの番号を付け直したりする場合は、アプリケーションを変更してから、再コンパイルして再デプロイする必要があります。

「jndi.properties」を使用するソリューションをいくつか見てきましたが、これまでのところ何も機能していません。いずれにせよ、何かを変更するには、再コンパイルして再デプロイする必要があります。

ネットワークの詳細をアプリにハードコーディングする必要がない、これを行うためのより簡単な方法はありますか?それとも、これが私にできる最善のことですか?

ありがとう!

-----スコット。

4

1 に答える 1

0

外部の .properties ファイルは、再コンパイルを避けるための方法だと思います。

このファイルは、ファイルシステム内の別のファイルとして、パッケージ化された .jar の外にある可能性があります

または、クラスパスに持ち込む「configuration-resources.jar」にパッケージ化されます。この質問では、いくつかの異なる展開シナリオでのプロパティの読み取りの基本について説明します

jndi.properties について詳しく知りたい場合は、oracleで詳細をお読みください。プロパティをプログラムで読み取ることを避けるため、jndi.properties を使用する方がより推奨される方法だと思います。ただし、ファイルシステムから自作の .properties ファイルを読み取るだけで、より高速な結果が得られる場合があります。

于 2013-03-22T05:55:08.377 に答える