利用CXF和服务端代码生成WSDL文件

根据编写的客户端代码来生成wsdl文件

  首先通过编写一个小案例,我们编写了服务端的代码,点击eclipse运行后,去浏览器上输入你在服务器段编写的地址,本文的地址是http://localhost:8090/MyService?wsdl,输入地址后就可以看到一个wsdl文件的XML形式,这里有一个问题,不同浏览器看到的XML结构有些问题,什么意思呢,有些浏览器会自动加载一些文本和结构,比较综合了一下:
1、IE浏览器不会加载其他内容,反而会丢失一些内容。
2、谷歌浏览器会自动加载其他内容,加载一些文本。
3、火狐浏览器会自动记载其他内容,加载一些文本。
谷歌浏览器的示例:

  关于保存WSDL文本,我们最简单的方法就是将浏览器上的WSDL XML文本 ctrl+c 复制下来,拷贝进一个XXX.wsdl 文件中,记住不要将浏览器自动加载的文本复制进文本里,否则利用wsdl生成客户端java代码的时候会报错。

如何验证你的wsdl

  利用你得到的wsdl文件,使用命令:wsdl2java -p org.client -all -client -encoding utf8 -frontend jaxws21 f:\xxx.wsdl
命令解读:
wsdl2java:这个是要配置到系统路径里,在安装CXF的时候会要求做这一步。
-p:就是将生成的客户端代码放进具体的哪一个Package里,当然-p 后面填写的就是包名,本命令 org.client就是包名。
-all:生成所有开始端点代码
-client:生成客户端
-encoding utf-8 :指定utf-8编码格式
-frontend:这个命令暂时还不知道

  这样生成的客户端代码文件就在你使用此命令的当前路径下,当然你也可以使用命令来指定生成文件的路径。如果正常运行没有报错,就查看下你的客户端代码,一些类方法和类属性都没有问题,就成功了。如果报错,报错说xml文档有问题的,就说明你的wsdl有问题,检查你复制的wsdl有没有问题。

结论

  还有其他的方法来生成wsdl文件,但是这种也是比较简单的,可能第一次可能会出错,后面经常用就没有问题了。

你可能感兴趣的:(cxf学习)