Java调用webservice接口的步骤如下:
创建一个Java项目,导入webservice相关的jar包。
在项目中创建一个Java类,用于调用webservice接口。
使用Java自带的工具wsimport生成webservice客户端代码。wsimport是一个命令行工具,可以通过命令行执行。例如:
wsimport -s src http://localhost:8080/HelloWorld?wsdl
其中,-s参数指定生成的客户端代码存放的目录,http://localhost:8080/HelloWorld?wsdl是webservice的WSDL地址。
在Java类中创建webservice客户端对象,并调用webservice接口。例如:
HelloWorldService service = new HelloWorldService();
HelloWorld port = service.getHelloWorldPort();
String result = port.sayHello(“world”);
System.out.println(result);
其中,HelloWorldService是生成的webservice客户端代码中的类,getHelloWorldPort()方法返回webservice接口的实现类,sayHello()方法是webservice接口中定义的方法。
运行Java程序,查看调用结果。
如果webservice接口需要传递参数,可以在调用方法时传递参数。例如:
String result = port.sayHelloToPerson(“Tom”);
其中,sayHelloToPerson()方法是webservice接口中定义的方法,"Tom"是传递的参数。
如果webservice接口返回的是复杂类型,可以通过Java对象来接收返回值。例如:
Person person = port.getPerson(“Tom”);
System.out.println(person.getName() + " " + person.getAge());
其中,getPerson()方法是webservice接口中定义的方法,Person是一个Java对象,getName()和getAge()是Person对象中的方法。
如果webservice接口需要进行身份验证,可以在创建webservice客户端对象时设置用户名和密码。例如:
HelloWorldService service = new HelloWorldService();
HelloWorld port = service.getHelloWorldPort();
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, “username”);
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, “password”);
其中,"username"和"password"是webservice接口需要的用户名和密码。
如果webservice接口需要进行HTTPS连接,可以在创建webservice客户端对象时设置SSL证书。例如:
HelloWorldService service = new HelloWorldService();
HelloWorld port = service.getHelloWorldPort();
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory", sslSocketFactory);
其中,sslSocketFactory是一个SSL证书工厂对象。