EJB注释和接口

时间:2017-11-06 08:39:36

标签: java servlets jboss ejb

我开始研究EJB,我在部署应用程序时遇到了问题。

我正在使用JBoss作为Application Server。

这是我的Bean界面:

public interface HelloWorldInterface {

    public String printMessage();
}

这是我的Bean(本地):

@Local
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class LocalHelloWorld implements HelloWorldInterface{

    /**
     * Default constructor. 
     */
    public LocalHelloWorld() {
        // TODO Auto-generated constructor stub
    }

    @Override
    public String printMessage() {

        return "This is a local EJB called \"LocalHelloWorld\"";
    }
}

这是我使用它的servlet:

public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @EJB
    private LocalHelloWorld localHelloWorld;
}

我收到此错误:

  

引起:   org.jboss.as.server.deployment.DeploymentUnitProcessingException:   WFLYEJB0406:找不到类型为interface的EJB   'source.bean.LocalHelloWorld'用于绑定MyServlet / localHelloWorld     在   org.jboss.as.ejb3.deployment.processors.EjbInjectionSource.getResourceValue(EjbInjectionSource.java:90)

如果我使用此错误,则会修复此错误:

 public class MyServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;

        @EJB (beanName="LocalHelloWorld")
        private HelloWorldInteface localHelloWorld;
    }

为什么会这样?

由于

1 个答案:

答案 0 :(得分:0)

annotaiton

@Local

不再需要EJB 3.1版的

,请参阅:

https://stackoverflow.com/a/7370053/1925356

您使用哪个EJB版本?

亲切的问候:亚历克斯