【问题标题】:EJB Annotation and InterfaceEJB 注释和接口
【发布时间】:2017-11-06 08:39:35
【问题描述】:

我开始学习 EJB,但在部署我的应用程序时遇到问题。

我使用 JBoss 作为应用服务器。

这是我的 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: 没有找到类型为接口的 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;
    }

为什么会这样?

谢谢

【问题讨论】:

    标签: java servlets jboss ejb


    【解决方案1】:

    注释

    @本地

    EJB 3.1 版不再需要,请参阅:

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

    您使用哪个 EJB 版本?

    亲切的问候:亚历克斯

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多