Eclipse 来自独立Web项目的EJB接口引用
我正在Eclipse上进行一些EJB3.1实践 我在Wildfly 9上有一个EJB项目和一个动态Web项目 我试图做的是调用一个EJB方法 (EJB项目)来自Servlet(在动态Web项目中) 在Servlet代码上使用@EJB注释:Eclipse 来自独立Web项目的EJB接口引用,eclipse,servlets,jakarta-ee,ejb,wildfly,Eclipse,Servlets,Jakarta Ee,Ejb,Wildfly,我正在Eclipse上进行一些EJB3.1实践 我在Wildfly 9上有一个EJB项目和一个动态Web项目 我试图做的是调用一个EJB方法 (EJB项目)来自Servlet(在动态Web项目中) 在Servlet代码上使用@EJB注释: @EJB IBeanRemote bean; //realize the bean variable is declared as the remote EJB Interfase. protected void doGet(HttpServletReque
@EJB
IBeanRemote bean; //realize the bean variable is declared as the remote EJB Interfase.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println(bean.getMethod());
}
我的EJB非常简单:
@Remote
@Stateless
public interfase IBeanRemote {
public String getMethod();
}
...
public BeanRemote extends IBeanRemote
{
@Override
public String getMethod() {
return "How to call this ejb?";
}
}
这两个项目都被打包到EAR项目中,但我不能这样做
请参阅Web项目中的IBeanRemote类型引用(因为IBeanRemote和Servlet位于单独的项目中),因此
@EJB
IBeanRemote bean;
无法编译
一个常见的解决方案是在Web项目构建路径中添加EJB项目,但是如果我使用的是在非常远程的服务器上运行的远程EJB,并且我认为Web项目不应该知道任何关于EJB实现的信息,那么就没有意义了
如何将IRemoteBean引用类型放入我的Web项目中,以便生成Servlet类
在eclipse中编译并调用EJB方法?为什么不将EJB项目分为两个较小的项目:包含接口的EJB-API,您可以将此项目用于客户端,以及实现接口的EJB-IMPL。您的客户机和EJB-IMPL都将引用您的EJB-API项目 实际上,我刚刚意识到,当我们在EAR中创建ejb项目时,通过选中此选项,我们可以在eclipse中自动创建ejb客户机jar。只有ejb接口将导出到客户机jar。太好了,谢谢。