ejb3.0+jboss4.2.3下LOCAL和REMOTE不能同时声明

来源:互联网 发布:mysql客户端和服务端 编辑:程序博客网 时间:2024/05/03 23:38

最近在学习ejb3.0 在看尚学堂的视频中照着写了以下ejb

package com.bjsxt.ejb;

import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;


@Stateless
@Remote
@Local
public class UserManagerBean implements UserManager {

public void addUser(User user) {
System.out.println("User[username="+user.getUsername()+"]已经被保存");
       
user.setId(10);
}

}

 

以上ejb写好后在客户端调用的时候一直报错,要不说local不能bound要不说Local and Remote Interfaces cannot have duplicate interface for bean XXXXX, 后来网上查了下,还是有好多大哥都遇到了这个问题,原来是jboss4.2.2以上的版本不支持local和remote同时申明,解决方法综合起来:

 

1、写两个接口,一个声明成remote另一个声明成local,再分别由两个ejb继承

2、将上述代码中的@Remote和@Local分别改成@Stateless
@Remote(UserManager.class)
@Local(UserManager.class)