Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 来自独立Web项目的EJB接口引用_Eclipse_Servlets_Jakarta Ee_Ejb_Wildfly - Fatal编程技术网

Eclipse 来自独立Web项目的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

我正在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(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。太好了,谢谢。