我开始研究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;
}
为什么会这样?
由于
答案 0 :(得分:0)
annotaiton
@Local
不再需要EJB 3.1版的,请参阅:
https://stackoverflow.com/a/7370053/1925356
您使用哪个EJB版本?
亲切的问候:亚历克斯