EJB3入门
程序员文章站
2022-03-11 09:13:10
...
还是拿一个EJB3的例子来说吧。
先定义一个远程接口。
用无状态会话Bean实现这个接口。
ejb-jar.xml内容如下:
weblogic-ejb-jar.xml内容如下:
部署EJB项目到weblogic server上。
[b]客户端调用代码如下:[/b]
JNDI的查找名为MappedName#远程接口的类名,即FacadeBean#com.bms.FacadeBeanRemote。
[color=red]需要注意的是为了让客户端代码可以正常调用,在EJB项目的Libraries里面要拿掉WebLogic System Libraries,同时在项目路径下加入wlfullclient.jar包。[/color]
执行客户端调用代码,打印出“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上。
[b]客户端调用代码如下:[/b]
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。
[color=red]需要注意的是为了让客户端代码可以正常调用,在EJB项目的Libraries里面要拿掉WebLogic System Libraries,同时在项目路径下加入wlfullclient.jar包。[/color]
执行客户端调用代码,打印出“who am i”。
Done!!!!!!!!!!!!!
上一篇: Available Skins
下一篇: Java xml数据格式返回实现操作