我正在开发 Glassfish 版本 3,当我尝试编译应用程序时,此错误日志出现在日志文件中,
SEVERE: The annotation symbol defined in super-class is not compatible with Session ejb ManagerDaoImpl
注释是@Singleton
和@Stateless
有什么办法可以解决这个问题吗?
最佳答案
带有@Singleton
注解的bean适用于Java VM的一个实例,带有@Stateless
的bean则适用于Java VM的多个实例。
如果你有公共(public)方法,你可以定义一个基类,如下所示:
public abstract class AbstractBean {
public void commonMethod() {
// do common operation
}
}
public interface LocalFoo {
public void foo();
}
public interface RemoteFoo {
public void foo();
}
@LocalBean
@Local(LocalFoo.class)
@Remote(RemoteFoo.class)
@Stateless
public class FooBean extends AbstractBean implements LocalFoo, RemoteFoo {
@Override
public void foo() {
// do something
}
}
关于Java EE EJB 3.0 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047317/