-
xfire webservice返回XMLObject15
先讲述下我的开发过程:
1.服务端开发:
1)我在服务端有一个实体类User,提供了三个属性id,name,pass;
2)建立一个dao接口,提供了三个方法:一个是通过id返回字符串name;第二个是通过id返回User对象;第三个是直接返回一个List(User对象的集合);这里为List<User>,使用的是网上说的泛型.
3)实现2)中的接口;
4)加入服务端的jar包,配置service.xml.
5)把应用部署到tomcat下,并启动应用.
6)用http://localhost:8080/test/services/UserService?wsdl访问.
在浏览器上生成一个wsdl文件.
至此,服务端配置完成.下面描述下客户端的配置操作
2.客户端开发:
1)把刚才生成的wsdl文件拷贝到src目录下.不需要改动什么.
2)把客户端jar包拷贝到lib目录下;
3)建立一个xml,这个xml就是可以执行的ant文件.
<?xml version="1.0" encoding="UTF-8"?> <project default="genfiles" basedir="."> <property name="lib" value="../WebRoot/WEB-INF/lib" /> <path id="myclasspath"> <fileset dir="${lib}"> <include name="*.jar" /> </fileset> <pathelement location="${genfiles}" /> </path> <property name="code_path" value="src" /> <property name="wsdl_path" value="UserService.wsdl" /> <property name="code_package" value="com.zhang.client" /> <target name="genfiles" description="Generate the files"> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" /> <wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" /> </target> </project>
4)执行刚才的哪个xml,自动生成三个java类文件.UserServiceClient.java,UserServiceImpl.java,UserServicePortType.java(这个是个接口),并且UserServiceImpl实现了这个UserServicePortType接口.
在这个方法接口中也有三个方法,public String getUsername(int id),public XMLObject getUser(int id),public XMLObject getAllUser();
问题:为什么在服务端的是User对象,List的都成了XMLObject类型.
5)建立一个test的测试类,在main方法中直接调用
UserServiceClient usc = new UserServiceClient(); UserServicePortType up = usc.getUserServiceHttpPort("http://localhost:8080/webservice/services/UserService");
使用 up对象就可以对接口中的方法实现调用了.
6)当我调用返回值是String的方法getUserName(),可以正确的得到name.调getUser()和getAllUser()的时候当然返回的就是XMLObject了.
问题:webservice是否在对象和集合操作的时候都是以xml在传递,如果是这样,那它本身是否提供了一种解决方法来实现到客户端把xml组成一个对象或是集合呢?注意:客户端调用的时候服务端一定要把服务启动起来.[/b]网上看了好多的帖子,大部分都是把服务端和客户端在同一个应用下,客观的说,他们的测试在某一层面上看来没有什么作用的.我上面的是客户端和服务端在两个不同的应用上.
希望有人帮忙提出解决方法和意见出来.先谢谢啦!2008年6月19日 11:12
2个答案 按时间排序 按投票排序
-
axis2,xfire都是java中不错的webservice组件。
最简单的客户端开发,就是利用组件自带的工具,根据wsdl文件来生成客户端代码,会让你选择xml对象组件,比如XMLBeans之类。然后在自己的代码中初始化这一客户端实例,直接调用api,返回对象。
2008年6月20日 10:41
-
回答1:请参阅SOAP简单对象协议。http://www.w3school.com.cn/soap/index.asp
回答2:请先了解了soap,然后做几个clint端的helloworld,非基于java的,例如asp.net、javascript或flash的,做几个就明白了。都有客户端api可以使用。2008年6月20日 09:06
相关推荐
xfire webservice 上传下载源码 一个完整的demo
spring集成xfire webservice实现远程调用 将项目发布后,点击http://localhost:8080/SpringWebServiceTest/services/HelloWS?wsdl即可 其中也有客户端的调用,自己试试吧。
xfire的一个完整实例,不过我建议大家,学习完理论知识后,根据自己学得知识,手动练习一下,遇到异常就百度,一下,这样比较好!
spring+xfire( 编写webservice完整配置+案例)
xfire实现webservice实例,XFire WebService开发快速起步
XFire WebService 精简包 搭建XFire WebService必备包
grails+Xfire webservice
经本人仔细研究最少导入8个包,就可以做一个简单的webservice的应用,有不同意见着,欢迎讨论:站内留言
XFire Webservice 服务器端
使用XFire框架实现了webservices技术,数据通过xml传输数据使用。 运行环境为jdk1.6 tomcat6.0
xfire webservice wsdl 文件中字段名称变化
Xfire Webservice的例子,简单易懂~ 发布服务和调用都很简单~ 自己整理了下~ 没事的拿去看下就知道啦~
xfire+spring+hibernate webservice
java使用XFire调用webService接口
XFire建立Webservice实例,入门级别,适XFire建立Webservice实例,入门级别,XFire建立Webservice实例,入门级别,适合初学者适合初学者合初学者
xFire WebService 实例开发
xfire简单实例发布webservice,引用到2个jar包的简单例子
用XFire开发WebService Spring注解
xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样
java xfire webService服务器端,开发简单有文档说明。