2011-07-07 10 views
1

ProjectA(フロントエンド)とProjectB(バックエンド)の2つのプロジェクトと、ProjectAのClassAとProjectBのClassBの2つのクラスがあるとします。 ClassAでClassBのインスタンスを取得する必要があります。 問題は、SpringとRMIを使用してClassAにClassBの注入を編成する方法ですか? spring.xmlに追加する内容 私はjavaで新しいですので、あなたはexamplsで答えを提供することができますしてください。 ありがとうございます!RMIを使用したスプリング依存性注入

public void initializeManager() { 
    InitialContext context = null; 
    if (manager == null) { 
    try { 
     Properties props = TaxFormsConfiguration.getInstance().getProperties(); 
     context = new InitialContext(props); 
     manager = (EFormsManager) context.lookup("taxsystem/EFormsManagerFacade/remote"); 
     if (manager == null) { 
     throw new RuntimeException("EFormsManager is null."); 
     } 
    } catch (Exception e) { 
     logger.error("error in EFormsActionManager.initializeManager: " + e.getMessage()); 
    } 
    } 
} 

答えて

2

チェックSpring reference for remoting

ApplicationContext context = new ClassPathXmlApplicationContext(yourxmlname); 
EFormsManager eFormsManager= (EFormsManager)context.getBean("eFormsManager"); 

XML RMI上:ゆうがある例(RMIを使用して章19.2公開サービス)の代わりにあなたがXMLであなたの豆を宣言し、例えば、Springアプリケーションコンテキストを経由してそれらを取得しますコンテキスト検索の

を見つけることができますサーバ側:RMIクライアント側の

<bean id="eFormsManager" class="example.EFormsManagerImpl"> 
    <!-- any additional properties, maybe a DAO? --> 
</bean> 

<bean class="org.springframework.remoting.rmi.RmiServiceExporter"> 
    <!-- does not necessarily have to be the same name as the bean to be exported --> 
    <property name="serviceName" value="EFormsManagerService"/> 
    <property name="service" ref="eFormsManager"/> 
    <property name="serviceInterface" value="example.EFormsManager"/> 
    <!-- defaults to 1099 --> 
    <property name="registryPort" value="1199"/> 
</bean> 

XML:

<bean id="eFormsManager" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> 
    <property name="serviceUrl" value="rmi://HOST:1199/EFormsManagerService"/> 
    <property name="serviceInterface" value="example.EFormsManager"/> 
</bean> 
+0

ハイテクは、あなたの迅速なRESPをありがとうございましたonse!私は前にそのチュートリアルを見たが、まだ私は自分のプロジェクトにそれを適用することはできません。 具体的には、私は私が何をしたいのですが注入によってではなく、メソッドinitializeManager()を持っています。 –

+0

public void initializeManager(){ \t \t InitialContext context = null; \t \t場合(マネージャー== NULL){ \t \t \t試み{ \t \t \t \tプロパティの小道具= TaxFormsConfiguration.getInstance()のgetProperties()。 \t \t \t \t context = new InitialContext(props); \t \t \t \t manager =(EFormsManager)context.lookup( "taxsystem/EFormsManagerFacade/remote"); \t \t \t \t(マネージャー== NULL)であれば{ \t \t \t \t \tが( "EFormsManagerがヌルである。")新規のRuntimeExceptionを投げます。 \t \t \t \t} \t \t \t}キャッチ(例外e){ \t \t \t \t logger.error( "EFormsActionManager.initializeManagerにおけるエラー:" + e.getMessage())。 \t \t \t} \t \t} \t} –

+0

uはそれを行うにはどのようにいくつかのアドバイスをお願いできるかどうか私は理解して、今、私はこの方法を削除する必要があると - spring.xmlする「何か」を追加しますが、何を追加します知りません :( –

関連する問題