ejbリモートコールのweblogic

2284 ワード

個人はejbの遠隔呼び出しがとても役に立つと思って、性能はwebserviceのストリームよりずっと良いべきで、配置もそんなに複雑ではありませんて、1つの午後の重要な解決をして、記録します
1.jarパッケージjavaxを追加する.ejb_3.0.1.jar
2.書き込みサービス
package com.test;


public interface RmiInterface {
	public Object callService(Object obj);
}
package com.test;

import java.util.HashMap;
import java.util.Map;

import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless(mappedName="AipEJBAdapter")
@Remote({RmiInterface.class})
public class RmiEjbImpl implements RmiInterface{

	public Object callService(Object obj) {
		System.out.println("  RmiEjbImpl.callService,  :"+obj);
		Map res = new HashMap();
		res.put("nsrsbh", "dsagewgwre");
		return null;
	}
}

3.サービス側の2つのクラスをjarにパッケージし、webエンジニアリングをweblogicに配置し、このjarをlibの下に置く
4.Webディレクトリの下にMETA-INF/アプリケーションを新規作成する.xmlファイル、内容は以下の通りです.



        ejbtest
        
        WEB-INF/lib/ejbtest.jar
    
        
        
                
                        /
                
        

5.サーバーを起動して、webloicコンソールでdeploymentsはjarが配置に成功したことを見ることができて、serversメニューを開けて、サーバーを展開して、View JNDI Treeはすでに配置に成功したejbのjndiを見ることができて、記録

Binding Name、クライアント呼び出し時に使用
6.クライアント呼び出しテストコード:
package com.test;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

public class RmiClientTest {
	public static void main(String[] args) throws Exception {
		Properties p = new Properties();  
        p.setProperty(Context.INITIAL_CONTEXT_FACTORY,  
                "weblogic.jndi.WLInitialContextFactory");  
        p.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");  
        InitialContext init = new InitialContext(p);  
        RmiInterface rmi = (RmiInterface) init.lookup("AipEJBAdapter#com.test.RmiInterface");  
        rmi.callService("    ");
	}
}

lookupのパラメータは、ステップ5のBinding Nameです.
注意:サービス側はweblogicの下に配置する必要があります.クライアントはweblogicのjarパッケージwlfullclientに参加することができます.jar、mainテストを書けばいいです.