webservice之CXF注解实现(二)
2013-10-25 16:52
239 查看
上一篇的测试,在本地会成功,但是将测试代码放入其他工程中就会报错的,首先编译就通不过,因为需要加载
factory.setServiceClass(CloudDataService.class);
那么如何实现CXF的网络访问呢,这就是本文要讨论的问题。
在apache-cxf-2.7.7/bin目录下有一个wsdl2java命令,这个命令可以按照wsdl文件制定的规则来生成java客户端和服务器端的代码,
这里我们只需要客户端的代码就可以了。
首先一个问题,如何得到wsdl文件?
在浏览器访问我们之前的webservice,可以看到如下图示
![](http://img.blog.csdn.net/20131025163205156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9vazg1OTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在url后面加上?wsdl,再次访问,我们得到另一个页面
![](http://img.blog.csdn.net/20131025163331718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9vazg1OTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(由于篇幅问题,我只截图了一部分。)
对了,就是这个页面,它就是我们的wsdl文件中的内容。
将这个页面的内容拷贝到一个新建文件中,随便起名,最好以.wsdl结尾
例如我将它保存为IService.wsdl,并将该文件放入d盘
接下来就要用到wsdl2java了,在命令行输入
D:\tool\apache-cxf-2.7.7\bin>wsdl2java -p com.look.test -d d:\test -client d:\IService.wsdl
意思是执行wsdl2java命令,以IService.wsdl文件为原型构建client所需要的类,并将生成的类放入d:\test目录下,目录结构为test\com\look\test
执行完毕我们会看到生成了一堆java文件如下
![](http://img.blog.csdn.net/20131025163833328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9vazg1OTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
复制整个com目录,粘贴到你要进行客户端调用的工程中,直接运行IService.IservicePort_Client.java就会看到结果。
注意:因为本例使用的是自建类型RequestCondition作为参数,IService.IservicePort_Client.java会默认创建一个null的
RequestCondition对象,这样运行时会导致报错,我们需要修改一下,
RequestCondition requestCondition = new RequestCondition();
requestCondition .setAge("18");
另外要注意使用wsdl2java生成java代码时,要看一下使用的jdk环境,如果使用的是1.7的jdk版本,生成的代码放到jdk为1.6的项目中就会报错。
再做测试(这个测试就可以是网络访问了,可以另找一台机器测试),大功告成!
factory.setServiceClass(CloudDataService.class);
那么如何实现CXF的网络访问呢,这就是本文要讨论的问题。
在apache-cxf-2.7.7/bin目录下有一个wsdl2java命令,这个命令可以按照wsdl文件制定的规则来生成java客户端和服务器端的代码,
这里我们只需要客户端的代码就可以了。
首先一个问题,如何得到wsdl文件?
在浏览器访问我们之前的webservice,可以看到如下图示
在url后面加上?wsdl,再次访问,我们得到另一个页面
(由于篇幅问题,我只截图了一部分。)
对了,就是这个页面,它就是我们的wsdl文件中的内容。
将这个页面的内容拷贝到一个新建文件中,随便起名,最好以.wsdl结尾
例如我将它保存为IService.wsdl,并将该文件放入d盘
接下来就要用到wsdl2java了,在命令行输入
D:\tool\apache-cxf-2.7.7\bin>wsdl2java -p com.look.test -d d:\test -client d:\IService.wsdl
意思是执行wsdl2java命令,以IService.wsdl文件为原型构建client所需要的类,并将生成的类放入d:\test目录下,目录结构为test\com\look\test
执行完毕我们会看到生成了一堆java文件如下
复制整个com目录,粘贴到你要进行客户端调用的工程中,直接运行IService.IservicePort_Client.java就会看到结果。
注意:因为本例使用的是自建类型RequestCondition作为参数,IService.IservicePort_Client.java会默认创建一个null的
RequestCondition对象,这样运行时会导致报错,我们需要修改一下,
RequestCondition requestCondition = new RequestCondition();
requestCondition .setAge("18");
另外要注意使用wsdl2java生成java代码时,要看一下使用的jdk环境,如果使用的是1.7的jdk版本,生成的代码放到jdk为1.6的项目中就会报错。
再做测试(这个测试就可以是网络访问了,可以另找一台机器测试),大功告成!
相关文章推荐
- Tomcat下通过CXF实现不用注解发布WebService
- WebService之CXF注解之三(Service接口实现类)
- WebService-CXF和spring整合实现webservice案例(Spring配置注解环境)
- WebService之CXF注解之三(Service接口实现类)
- WebService之CXF注解之三(Service接口实现类)
- cxf webservice 注解方式实现!!!!!
- Tomcat下通过CXF实现不用注解发布WebService
- webservice之CXF注解实现(一)
- webservice之CXF注解实现(三)
- CXF整合spring实现webservice
- webService 使用CXF 实现简单的helloworld
- CXF实现webservice (一)
- 【随记】cxf的webservice接口实现
- 在同一个系统里用cxf 实现SOAP 协议和RESTful风格 两种类型的webservice接口(含简单demo)
- cxf + spring 实现的webservice的 异常
- WebService之CXF注解之一(封装类)
- CXF+Spring 实现WebService
- java实现webservice的CXF框架和JDK1.6的冲突问题
- 现有项目整合CXF实现webservice对接
- WebService -- Java 实现之 CXF (WebService 服务器端接口)