如果服务端提供jar包,客户端直接引用jar,不用再生成webservice的客户端代码,实现调用代码如下:
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.BindingProvider;
import com.webservice.WebService;
public class WebServiceClient{
private WebService webService;
private WebServiceClient() { //构造方法中,初始化webService,其中的地址要按照wsdl文件中进行配置
Service svc = Service
.create(new QName("http://www.xxx.cn/ws/WebService/", "WebService"));
svc.addPort(new QName("http://www.xxx.cn/ws/WebService/", "WebServicePort"),
"http://schemas.xmlsoap.org/wsdl/soap/http", "");
webService = svc.getPort(WebService.class);
((BindingProvider) webService).getRequestContext().put("thread.local.request.context", "true");
((BindingProvider) webService).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
wsdlAddr);
}
pratiate void test(){
System.out.println(webService.test()); //直接调用
}
}