3

我需要在我正在构建的 Java Web 应用程序中调用一些 Web 服务方法。

例如,每次用户注册时,我都想newUser通过 Java 调用 WSDL url 上的方法。我需要在请求中传递一些参数。

是否有任何内置的 Java 类或任何公开可用的类可以使这变得容易,即我只提供 URL 和参数,它执行请求并返回响应?

如果不是,那么在 Java 应用程序中调用 WSDL 上的 Web 服务的标准方法是什么?

4

1 回答 1

10

在已部署的 WSDL URL 上运行 wsimport,您可以从 JDK 运行它:

wsimport -p client -keep http://localhost:8080/calculator?wsdl

这一步将生成并编译一些类。注意 -keep 开关,你需要它来保存生成的 Java 源文件。

Calculator.java - 服务端点接口或 SEI
CalculatorService - 生成的服务,实例化它

public class MyClientServiceImpl {
    public static void main(String args[]){

    @Override
    public Integer add(int a , int b) {
       CalculatorService service = new CalculatorService();
       Calculator calculatorProxy = service.getCalculatorPort();            
        /**
         * Invoke the remote method
         */
        int result = calculatorProxy.add(10, 20);
        System.out.println("Sum of 10+20 = "+result);
    }
}

如果您使用的是 Java EE 6 支持的容器,那么您可以通过这种方式使用它,

public class MyClientServiceImpl implements MyClientService {

    @WebServiceRef(wsdlLocation = "http://localhost:8080/calculator?wsdl", 
value = CalculatorService.class)
    private Calculator service;

    @Override
    public Integer add(int a , int b) {
        return service.add(a,b);
    }
}
于 2013-03-03T16:14:32.817 回答