EJB-03:
package com.zh.ejb;
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote
@Local
public class UserManagerBean implements UserManager{
@Override
public void addUser(User user) {
System.out.println("User[username="+user.getUsername() +"]has been saved");
user.setId(10);
}
}
远程客户端在EJB端改变对象值客户端不可见
本地客户端在EJB端改变对象值客户端可见
所传输的对象要实现序列化接口(本地web客户端可以不实现序列化接口)
使用本地WEB客户端时出现ClasscastException
$JBOSS_HONE/server/default/deploy/jboss-web.deployer/META-INF/jboss-service.xml
<attribute name="UseJBossWebLoader">true</attribute>
EJB-04
package com.zh.ejb;
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless(name="ejb04beanname")
@Remote({Ejb04Interface01.class,Ejb04Interface02.class})
@Local({Ejb04Interface03.class,Ejb04Interface04.class})
public class Ejb04Bean implements Ejb04Interface01,Ejb04Interface02 ,Ejb04Interface03 ,Ejb04Interface04{
@Override
public void m1() {
System.out.println("method m1 has been invoked");
}
@Override
public void m2() {
System.out.println("method m2 has been invoked");
}
@Override
public void m3() {
System.out.println("method m3 has been invoked");
}
@Override
public void m4() {
System.out.println("method m4 has been invoked");
}
}
远程客户端只可以访问@Remote后面的接口
本地客户端@Remote,@Local都可以
也可以将@Remote,@Local直接定义在相应的接口上