Java EE EJB 3.0 注释

Poy*_*raz 2 java ejb glassfish jakarta-ee

我正在开发 Glassfish 版本 3,当我尝试编译应用程序时,此错误日志出现在日志文件中,

SEVERE: The annotation symbol defined in super-class is not compatible with Session ejb ManagerDaoImpl
Run Code Online (Sandbox Code Playgroud)

注释是@Singleton@Stateless

有什么办法可以解决这个问题吗?

Pau*_*gas 5

带注解的bean@Singleton适用于Java VM的一个实例,带注释的bean@Stateless适用于Java VM的多个实例。

如果你有公共方法,你可以定义一个基类,如下所示:

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
    }
}  
Run Code Online (Sandbox Code Playgroud)