1 在eclipe中创建EJB项目(1)首先创建一个接口TestMethodpackage com.linding.wnq.interfaces;
import javax.ejb.Remote;
@Remote
public interface TestMethod {
public String getMessage(String msg);
}
(2)编写Convert的实现类
package com.linding.wnq.impl;
import java.util.Date;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import com.linding.wnq.interfaces.TestMethod;
//EJB的JNDI名称为"TestMethod",客户端寻找该EJB时,
//所使用的名字为"TestMethod#com.linding.wnq.interfaces.TestMethod",实际上是相当于寻找里面的接口
//无状态的会话bean
@Stateless (mappedName="TestMethodBean")
@Remote(TestMethod.class)
public class TestMethodBean implements TestMethod {
@Override
public String getMessage(String username) {
String msg=username+"您好! 现在时间是"+new Date().toString();
return msg;
}
}
其中@Stateless @Stateless (mappedName="TestMethodBean") @Remote(TestMethod.class)的作用是确定该EJB是可以被远程调用的。
EJB的JNDI名称为"TestMethodBeann",客户端寻找该EJB时,所使用的名字为"TestMethodBean#com.linding.wnq.interfaces.TestMethod",实际上是相当于寻找里面的接口。
该EJB是无状态的会话Bean。
2 部署EJB
直接将ejb运行在Weblogic服务器上,Eclipse会帮我们部署。
TestMethodBean 并不是JNDI名称,知识该EJB实现类的类名称。
3编写客户端
(1)得知服务器是WebLogic,因为不同的服务器连接方式可能不一样。
(2)得知服务器的IP地址和端口。
(3)拥有该EJB的远程接口的class文件,得知服务器端EJB的JNDI名称,如前所述,名称为:"TestMethodBean#com.linding.wnq.interfaces.TestMethod"。
新建普通JavaProject,编写测试类代码如下:
package com.linding.wnq.test;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.linding.wnq.interfaces.TestMethod;
public class TestEJB {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) throws NamingException {
String username = "王能强";
String jndiName = "TestMethodBean#com.linding.wnq.interfaces.TestMethod";
Hashtable table = new Hashtable();
table.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
table.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
//查询服务器中的jndiName
Context context = new InitialContext(table);
TestMethod testMethod = (TestMethod) context.lookup(jndiName);
String msg=testMethod.getMessage(username);
System.out.println(msg);
}
}
然后将ejb中的接口打成jar引入到客户端,向工程中添加Weblogic.jar包。
运行该测试类就可以看到: