`
wang_zhi_peng2007
  • 浏览: 251267 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java6开发WebService应用--复杂对象及集合使用(4)

 
阅读更多

 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)、服务端的带参数构造方法在客户端失效。
以上三点是非常重要的,如果不知道会很郁闷,老出错还找不到原因。

 

  • 大小: 75.2 KB
  • 大小: 16.9 KB
  • 大小: 55.4 KB
分享到:
评论

相关推荐

    WebService--xfire中对集合的配置和操作

    WebService是Web服务的一种标准协议,它允许不同系统之间的应用程序通过Internet进行通信。XFire是Java平台上的一款开源...理解这些概念对于开发基于XFire的Web服务至关重要,尤其是在处理大量数据或复杂对象结构时。

    webservice的axis2开发

    4. 在Eclipse中新建项目,编写服务器端的Java代码,通过注解或配置文件声明WebService接口和服务实现。 通过AXIS2,开发者可以轻松地创建和发布WebService,同时AXIS2提供了丰富的功能,如WS-Security、MTOM和SwA等...

    webservice最小jar包

    4. **jaxb-api.jar**: Java Architecture for XML Binding (JAXB) 是JAX-WS的一部分,用于将Java对象与XML文档相互转换,是数据序列化的一种方式。 5. **stax-api.jar**: Streaming API for XML (StAX) 提供了一种...

    专业培训java的基本课程-7页精选文档.docx

    - **Java API使用:** 学习标准Java库的使用方法,如集合框架、日期时间API等。 - **数据结构及算法基础:** 掌握基本的数据结构(如数组、链表、树、图)和常见算法(排序、查找)。 - **Java AWT图形界面程序开发...

    Java EE 学习方向

    - **JDK(Java Development Kit)**: Java开发工具包,包含了编译、调试等工具。 - **JVM(Java Virtual Machine)**: Java虚拟机,负责执行Java字节码。 - **Eclipse**: 常用的Java集成开发环境之一。 - **...

    Java EE 5 入门 PPT

    Java EE(Enterprise Edition)5是Java平台上用于构建企业级应用的框架,它为开发者提供了丰富的服务和组件模型,以简化开发、部署和管理大型分布式应用程序的过程。本PPT旨在为初学者提供一个全面的入门指南,帮助...

    JAVA技术体系

    JDK是Java开发的基础,包含了Java运行环境(JRE)及Java开发工具。 - **Eclipse IDE**:掌握如何使用Eclipse进行Java程序的编写、调试和部署。Eclipse是一款广泛使用的Java集成开发环境(IDE),支持代码编辑、调试、...

    JavaEE.doc

    - **Java的开发与运行环境安装配置**:熟悉Java开发工具包(JDK)的安装过程,了解如何设置环境变量。 - **Java基本语法**:掌握Java中的关键字、变量、数据类型、运算符等基础知识。 - **Java编码惯例**:学习并...

    Java Web Service xFire Demo项目,带所有的包,完美运行

    Java Web服务是应用...此外,它还涵盖了如何处理复杂类型,如实体类和集合类,这些都是Java Web服务开发中的基础技能。这个项目对于初学者来说是一个很好的实践平台,能够帮助他们深入理解Web服务的工作原理和应用。

    webservice插件项目包.zip

    总结来说,"webservice插件项目包.zip"是一个包含XFire相关组件的集合,用于简化Java项目中的Web服务实现,特别是跨项目的方法调用。这个插件通过注解驱动的方式,使得开发者能够快速地创建和部署Web服务,从而提高...

    java从入门到精通笔记

    ### Java从入门到精通知识点梳理 #### 一、Java核心概念 **1. 环境搭建** - **Java的历史**: Java由...以上是从Java基础知识到高级应用的全面梳理, 旨在帮助学习者建立坚实的技术基础, 并逐步深入到实际项目开发中。

    推荐的学习Java的学习顺序

    通过以上步骤的学习,可以全面掌握Java开发所需的技能,为成为一名合格的Java开发人员打下坚实的基础。需要注意的是,学习过程中应注重实践,通过实际项目来巩固所学知识,这样才能更好地应对未来的挑战。

    webservice cxf 服务端客户端传递参数的例子demo

    - 复杂类型参数:如自定义对象,可能需要序列化和反序列化。 - 数组和集合参数:测试如何传递和接收多个值。 - 异常处理:检查服务端抛出的异常是否能被客户端捕获和处理。 5. **Readme.txt** Readme文件通常...

    java用XFire调用webservice例子.docx

    通过这种方式,XFire简化了Java开发Web服务的过程,使得开发者可以专注于业务逻辑,而不是复杂的Web服务实现。此外,由于XFire与Spring、Pico、Plexus等容器的兼容性,它也可以轻松集成到现有的企业级应用中,提供...

    JAVA SWing 实现C/S模式的数据库编程及WebServices 调用实现

    Java Swing 是Java GUI(图形用户界面)开发的一个关键库,用于构建桌面应用程序。它提供了丰富的组件集合,可以创建美观、功能强大的用户界面。在C/S(客户端/服务器)模式下,Swing通常作为客户端的部分,负责与...

    Java-笔试题集锦

    ### Java-笔试题集锦详解 #### 1. MVC的各个部分都有哪些技术来实现?如何实现? ...这些知识点覆盖了Java笔试题集锦中提到的主要内容,希望能帮助您更好地理解和掌握Java开发的相关概念和技术。

    CXF WebService 所需要的最少的jar包

    在这个主题中,我们将深入探讨CXF WebService所需的最小jar包集合,以及如何利用这些库来开发Web服务。 首先,CXF的核心功能依赖于一系列的jar包,这些jar包包含了处理不同协议、数据绑定、WS-Security等关键组件的...

Global site tag (gtag.js) - Google Analytics