我需要在我正在构建的java Web应用程序中调用一些Web服务方法。
例如,每次用户注册时,我都希望通过Java在WSDL URL上调用newUser
方法。我需要在请求中传递一些参数。
是否有任何内置的Java类或任何公开可用的类,这可以使这很容易,即我只提供URL和参数,它执行请求并返回响应?
如果没有,在Java应用程序中调用WSDL上的Web服务的标准方法是什么?
答案 0 :(得分:10)
在已部署的WSDL URL上运行wsimport,您可以从JDK运行它:
wsimport -p client -keep http://localhost:8080/calculator?wsdl
此步骤将生成并编译一些类。注意-keep switch,你需要它来保存生成的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);
}
}