------------------------------------------------------------------------------------
任何语言实现了web service的,都需要提供wsdl文档。
远程调用web service
CXF提供了wsdl2java工具,将wsdl文件转换为java描述文档。用法如下,打开cmd,进入客户端project的src
wsdl2java http://ip地址:端口/helloworld?wsdl
生成的java文档出现以下错误:
Service(URL, QName, WebServiceFeature[]) is undefined
Service(URL, QName, WebServiceFeature[]) is undefined
原因是CXF自带的javax.xml.service 版本高过 jdk的javax.xml.service。
一个解决办法是: 在使用wsdl2java时,加入参数 -frontend jaxws21
源地址:点击打开链接
------------------------------------------------------------------------------------
生成后开始用ClientMain.java调用
public class ClientMain {
public static void main(String[] args) {
HelloWorldWs factory = new HelloWorldWs();
HelloWorld helloworld = factory.getHelloWorldImplPort();
helloworld.say("xxxx");
}
}
HelloWorldWs是之前定义的名称,可看做工厂类,getXxxPort()方法获得原来的类。便可以调用类中的方法了。
其实这只是生成了Xxx类的代理对象。