webService 使用复杂对象及集合,在实际企业应用中经常使用
1. 服务端程序
package java_soa.getUser2.server; import java.util.ArrayList; import java.util.List; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class GetUserXx { /** * 获取用户对象(userbean) * @param user * @param address * @param flag * @return */ public UserBean getUser1(String user,String address, boolean flag){ return new UserBean(user,address,flag); } /** * 返回多个用户对象(list集合对象) * @param num * @return */ public List<UserBean> getUser2(int num){ List<UserBean> list1=new ArrayList<UserBean>(); UserBean user1= new UserBean(); for (int i=0;i<num;i++){ user1.setUsername("张三"); user1.setAddress("北京市朝阳区"); user1.setFlag(true); list1.add(user1); } return list1; } public static void main(String[] args) { //发布soa地址 Endpoint.publish("http://192.168.8.121:8095/java6ws/java_soa.server.GetUserXx", new GetUserXx()); } }
用户对象
package java_soa.getUser2.server; public class UserBean { /** * 用户信息 */ private String username; private String address; private boolean flag; public UserBean() { } public UserBean(String username, String address, boolean flag) { this.username = username; this.address = address; this.flag = flag; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } }
2. 发布服务端程序后,wsimport 生成客户端代码
文件目录
3. 客户端代码
package java_soa.getUser2.getClient; import java.util.List; import java_soa.getUser2.wsclient.GetUserXx; import java_soa.getUser2.wsclient.GetUserXxService; import java_soa.getUser2.wsclient.UserBean; public class GetUserXxClient { /** * 客户端调用(webService) */ public static void main(String[] args) { GetUserXx UserXx = new GetUserXxService().getGetUserXxPort(); UserBean use1 = new UserBean(); use1 = UserXx.getUser1("张三", "南京市", false); String name = use1.getUsername(); String addr = use1.getAddress(); System.out.println("SOA 取出用户对象 name=="+name+"addr=="+addr ); List<UserBean> list2 =UserXx.getUser2(5); for(int i=0;i<list2.size();i++){ use1 = list2.get(i); int m = i+1; System.out.println("SOA取出第"+m+"条用户信息!"+use1.getUsername()+" "+use1.getAddress()); } } }
4. 返回正确的参数,说明调用正常
5、总结
这里面其实有些细节,需要说明白:
1)、对于复杂对象,必须有一个不带参数的构造方法。
2)、服务端覆盖Object的方法不能在客户端复原,比如toString方法。
3)、服务端的带参数构造方法在客户端失效。
以上三点是非常重要的,如果不知道会很郁闷,老出错还找不到原因。
相关推荐
Java开发WebService实例--计数器.mht
展示WebService功能特点(别的地方下载来的,与大家共享)
Java 6 开发 WebService
java-WebService应用实例中包括所用的jar包,说明文档,还收集的Spring集成XFire开发WebService的应用
Java开发tomcat中间件的WebService实例
JAX-WS一个简单的java-ws webservice 例子是用myeclipse配置生成的,还行吧。
JAVA6开发WebService JWS示例
开发webservice可以使用java、也可以使用c#。由于国内大多数计算机安装的是Windows系列操作系统,所以使用c#开发webservice不仅开发效率高,而且部署和维护很方便。 本文详细介绍了java如何调用c#开发的webservice。...
一个java编写基于Axis1.4的webservice接口,包括服务端接口和调用端接口。
该资源附带SQL数据库 和 源代码 用到的技术有 webservice技术 servlet mvc模式 jdbc连数据库技术等 该资源实现的功能为 添加餐品 购买餐品 实现购物车操作等 还有许多功能 具体功能下载便知 里面还有一些意想不到的...
自己总结的java webService接口开发案例,希望能够帮助我需要的朋友。
java开发webservice的简单例子,简单看看
2、webservice--常用注解1
Java6开发WebService详细啊
webservice-java_soap.pdf,webservice-java_soap.pdf
Java使用axis来调用.net写的asmx WebService,大体步骤如下。 Axis需要用到的包如下: 1. axis.jar 2. commons-discovery-0.2.jar 3. commons-logging-1.0.4.jar 4. jaxrpc.jar 5. wsdl4j-1.5.1.jar java调用的代码...
1)Java用axis发布/调用webservice demo;调用方式为wsdl2java生成本地client代码调用; 2)资源中包含代码和axis1.4安装文件;
之前常常用CXF、Axis2、XFire等来开发结合Java语言来...但实际上Java6中已经支持用Java开发WebService应用了,而且很方便。这样就大大减少了项目安装部署的代价,因为选择开源的框架依赖大量第三方包,程序的尺寸倍增。
使用eclipse导入项目,既可使用。 【webservice----xfire 快速入门代码实训】----<下载不扣分,回帖加1分,欢迎下载,童叟无欺>
Java使用SOAP获取webservice实例解析 具体实例分析说明。