【问题标题】:How to consume a webservice from an EJB如何从 EJB 使用 Web 服务
【发布时间】:2009-08-14 09:10:52
【问题描述】:

我目前正在尝试围绕 Java EE 5 进行思考。我想做的是创建一个示例应用程序

  • 提供简单的无状态 EJB(例如,带有 add() 方法的简单计算器)
  • 将此添加方法公开为 Web 服务
  • 从另一个 EJB 使用此 Web 服务

前两个步骤很简单,我可以将这个 bean 部署到 Glassfish v2.1 并对其进行测试,并使用独立客户端对其进行测试:

@WebService
@Stateless
public class CalculatorWS {

    @WebMethod
    public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
        int k = i + j;
        return k;
    }
}

然而,我没有得到的是如何从第二个 EJB 使用这样的 web 服务。虽然在这个示例中并不是非常有用,但我很快将不得不编写一些 EJB 来包装外部 Web 服务,以使我的内部客户端不必处理这些外部资源。

据我了解,我应该能够让容器将 web 服务注入到我的 EJB 的一个字段中?但是,我没有找到一个例子。我欢迎任何有关此内容的教程的提示 - 或者在这里提供更好的示例 :-)

不管怎样,我使用的是 Eclipse 3.5。

【问题讨论】:

    标签: java web-services dependency-injection jakarta-ee ejb-3.0


    【解决方案1】:

    来自官方 Java EE 教程

    Consuming a Web service

    【讨论】:

      【解决方案2】:

      Web 服务客户端并不是真正的 EJB 特定的。所以我认为你会使用 JAX-WS 客户端技术,你的 EJB 环境是一个托管环境(JNDI 等都很好)。

      我知道您没有使用 WebSphere,但我希望here 解释的技术普遍适用。

      【讨论】:

        【解决方案3】:

        我只是将这个计算器 Bean 注入到另一个带有 @EJB 的无状态 Bean 中。 只要确保你的 bean 实现了一些能够注入的接口。

        【讨论】:

        • 如何将 CalculatorWS 用作 Web 服务?这将是一个普通的 EJB 调用,不是吗?
        猜你喜欢
        • 2017-06-02
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        • 1970-01-01
        • 1970-01-01
        • 2012-04-10
        • 1970-01-01
        相关资源
        最近更新 更多