EJB 3入門
3809 ワード
やはりEJB 3の例を挙げてみましょう.
まず、リモートインタフェースを定義します.
このインタフェースは、ステートレスセッションBeanで実装される.
ejb-jar.xmlの内容は次のとおりです.
weblogic-ejb-jar.xmlの内容は次のとおりです.
EJBプロジェクトをweblogic serverに配備します.
クライアント呼び出しコードは次のとおりです.
JNDIの検索名はMappedName#リモートインタフェースのクラス名、すなわちFacadeBean#comである.bms.FacadeBeanRemote.
クライアントコードが正常に呼び出されるように、EJBプロジェクトのLibrariesでWebLogic System Librariesを外し、プロジェクトパスの下にwlfullclientを追加することに注意してください.jarパッケージ.
クライアント呼び出しコードを実行し、「who am i」を印刷します.
Done!!!!!!!!!!!!!
まず、リモートインタフェースを定義します.
package com.bms;
import javax.ejb.Remote;
@Remote
public interface FacadeBeanRemote {
public String question();
}
このインタフェースは、ステートレスセッションBeanで実装される.
package com.bms;
import javax.ejb.Stateless;
/**
* Session Bean implementation class Facade
*/
@Stateless(mappedName = "FacadeBean")
public class FacadeBean implements FacadeBeanRemote {
/**
* Default constructor.
*/
public FacadeBean() {
// TODO Auto-generated constructor stub
}
@Override
public String question() {
return "who am i";
}
}
ejb-jar.xmlの内容は次のとおりです.
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
<display-name>bpm3-ejb </display-name>
</ejb-jar>
weblogic-ejb-jar.xmlの内容は次のとおりです.
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-ejb-jar xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.2/weblogic-ejb-jar.xsd">
<!--weblogic-version:10.3.6-->
<wls:weblogic-enterprise-bean>
<wls:ejb-name>FacadeBean</wls:ejb-name>
<wls:stateless-session-descriptor></wls:stateless-session-descriptor>
<wls:jndi-name>FacadeBean</wls:jndi-name>
</wls:weblogic-enterprise-bean>
</wls:weblogic-ejb-jar>
EJBプロジェクトをweblogic serverに配備します.
クライアント呼び出しコードは次のとおりです.
package com.bms;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Ejb3InvocationTest {
public static void main(String[] args) {
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
p.put(Context.PROVIDER_URL, "t3://localhost:7001");
p.put(Context.SECURITY_PRINCIPAL, "weblogic");
p.put(Context.SECURITY_CREDENTIALS, "welcome1");
InitialContext ctx;
try {
ctx = new InitialContext(p);
FacadeBeanRemote remote = (FacadeBeanRemote) ctx
.lookup("FacadeBean#com.bms.FacadeBeanRemote");
System.out.println(remote.question());
} catch (NamingException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
}
JNDIの検索名はMappedName#リモートインタフェースのクラス名、すなわちFacadeBean#comである.bms.FacadeBeanRemote.
クライアントコードが正常に呼び出されるように、EJBプロジェクトのLibrariesでWebLogic System Librariesを外し、プロジェクトパスの下にwlfullclientを追加することに注意してください.jarパッケージ.
クライアント呼び出しコードを実行し、「who am i」を印刷します.
Done!!!!!!!!!!!!!