如何从EJB使用Web服务

时间:2009-08-14 09:10:52

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

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

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

前两个步骤很简单,我可以将此bean部署和测试到Gla​​ssfish 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。

3 个答案:

答案 0 :(得分:2)

来自官方Java EE教程

Consuming a Web service

答案 1 :(得分:-1)

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

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

答案 2 :(得分:-1)

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