首先还是看HELLOWORLD的无状态会话bean
1 先看服务端的bean,
建立好接口
public interface FirstEjb {
public String saySomething(String username);
}
建立好实现
public interface FirstEjb {
public String saySomething(String username);
}
然后用myeclipse里jboss的打包功能就可以了(server视图里,右键,management,一步步下去)
2 建立客户端
import javax.naming.InitialContext;
import javax.rmi.*;
public class FirstEjbClient {
public static void main(String[] args) throws Exception
{
InitialContext ctx=new InitialContext();
// FirstEjb ejb= (FirstEjb)ctx.lookup("FirstEjbBean/remote");
FirstEjb ejb=null;
Object h=ctx.lookup("FirstEjbBean/remote");
ejb=(FirstEjb)PortableRemoteObject.narrow(h,FirstEjb.class);
String s=ejb.saySomething("aaa");
System.out.println(s);
}
注意,有的人说在客户端的工程里要引入服务端的EJB整个工程,这样的话,就可以少写些代码,直接用
// FirstEjb ejb= (FirstEjb)ctx.lookup("FirstEjbBean/remote");
可以是可以的,但这样来说违反了很多原则的,客户端只需要知道接口其实就可以了,没必要拿这么多东西,
因此比较好的写法应该是上面的,
还有,把jndi的配置写在
jndi.properties里了,要放在src目录下哦
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost