【发布时间】: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;
}
为什么会这样?
谢谢
【问题讨论】: