`

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

阅读更多

xfire下载URL:

http://xfire.codehaus.org/Download

 

对xfire的各种方法映射和集合映射做一个总结,jar包就是xfire下面的所有。

User类:

package org.forever.entity;

import java.io.Serializable;

public class User implements Serializable {
	private static final long serialVersionUID = 1668097150623622102L;
	private Integer id;
	private String username;
	private String password;

	public User() {
	}

	public User(Integer id, String username, String password) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

 PageInfo类:

package org.forever.entity;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 说明各种集合类型的映射
 * 
 * @author Administrator
 * 
 */
public class PageInfo {

	private int pageIndex = 0;
	private List<User> list = new ArrayList<User>();
	private Set<User> set = new HashSet<User>();
	private Map<String, User> map = new HashMap<String, User>();
	private User user = new User();

	public PageInfo() {

	}

	public int getPageIndex() {
		return pageIndex;
	}

	public void setPageIndex(int pageIndex) {
		this.pageIndex = pageIndex;
	}

	public List<User> getList() {
		return list;
	}

	public void setList(List<User> list) {
		this.list = list;
	}

	public Set<User> getSet() {
		return set;
	}

	public void setSet(Set<User> set) {
		this.set = set;
	}

	public Map<String, User> getMap() {
		return map;
	}

	public void setMap(Map<String, User> map) {
		this.map = map;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

}

 PageInfo.aegis.xml映射配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns:my="http://my.bjvsp.tongtech.com">
	<mapping name="PageInfo">
		<property name="list"
			componentType="org.forever.entity.User" />
	</mapping>
	<mapping name="PageInfo">
		<property name="set" componentType="org.forever.entity.User"></property>
	</mapping>
	<mapping name="PageInfo">
		<property name="map" keyType="java.lang.String" componentType="org.forever.entity.User"></property>
	</mapping>
</mappings>

 接口IHelloService.java:

package org.forever.webservice;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.forever.entity.PageInfo;
import org.forever.entity.User;

public interface IHelloService {
	
	public String sayHello(String content);
	public User get(User user);
	public List getAll(List list);
	
	public PageInfo getPage(User user,List list,Set set,Map map);
	
	
}

 接口实现:

package org.forever.webservice.impl;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.forever.entity.PageInfo;
import org.forever.entity.User;
import org.forever.webservice.IHelloService;

public class HelloServiceImpl implements IHelloService {

	public User get(User user) {
		System.out.println("HelloServiceImpl.get(user);");
		user.setUsername("sotry");
		return user;
	}

	public List getAll(List list) {
		System.out.println("HelloServiceImpl.getAll(List list);");
		list.add(new User(88, "唐平", "admin"));
		list.add(new User(99, "王维", "forever"));
		return list;
	}

	public String sayHello(String content) {
		System.out.println("HelloServiceImpl.sayHello(String content);");
		return content+"哦也";
	}

	
	public PageInfo getPage(User user, List list, Set set, Map map) {
		System.out.println("HelloServiceImpl.getPage()");
		user.setUsername("webService update username");
		list.add(new User(3, "admin", "admin"));
		set.add(new User(3, "admin", "admin"));
		map.put("key", new User(3, "admin", "admin"));
		PageInfo pageInfo = new PageInfo();
		pageInfo.setList(list);
		pageInfo.setSet(set);
		pageInfo.setMap(map);
		pageInfo.setUser(user);
		return pageInfo;
	}

}
 

IHelloService.aegis.xml映射:注意要想此文件和IHelloService类放入同一个包中!

<mappings  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xfire.codehaus.org/schemas/1.0/mapping.xsd">
    <mapping>
         <method name="getAll">
         	<parameter index="0" componentType="org.forever.entity.User"/>
            <return-type mappedName="userList" componentType="org.forever.entity.User" />
        </method>
        
        <method name="getPage">
        	<parameter index="1" componentType="org.forever.entity.User"/>
        	<parameter index="2" componentType="org.forever.entity.User"/>
        	<!-- map映射失败 -->
        	<parameter index="3" mappedName="userMap" keyType="java.lang.String" componentType="org.forever.entity.User"/>
        	<return-type componentType="org.forever.entity.PageInfo" />
        </method> 
   </mapping>
   
   
</mappings>   

 客户端代码HelloClient类:

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;

import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.forever.entity.PageInfo;
import org.forever.entity.User;
import org.forever.webservice.IHelloService;


public class HelloClient {

	public static void main(String[] args) {
		
		//创建服务
		Service service = new ObjectServiceFactory().create(IHelloService.class);
		//创建代理工厂
		XFireProxyFactory fireProxyFactory = new XFireProxyFactory();
		//服务地址
		try {
			IHelloService helloService = (IHelloService) fireProxyFactory.create(service, "http://127.0.0.1:8080/WebService/services/helloService");
			System.out.println(helloService.sayHello("我是神话"));
			User user = new User(1,"wrwr","wrwrwr");
			helloService.get(user);
			System.out.println(user.getUsername());
			
			List<User> users = new ArrayList<User>();
			users.add(new User(1,"wrwr","wrwrwr"));
			users.add(new User(1,"wrwr","wrwrwr"));
			users = helloService.getAll(users);
			System.out.println(users.size());
			System.out.println("***************************");
			PageInfo pageInfo = helloService.getPage(new User(), new ArrayList(),new HashSet<User>(),new HashMap<String, User>());
			System.out.println("客户端交互完成");
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		
		System.out.println("使用client交互:");
		Object[] results;
		try {
			Client client = new Client(new URL(
			"http://127.0.0.1:8080/WebService/services/helloService?wsdl"));
			results = client
			        .invoke("sayHello", new Object[] {"我来了哈"});
			System.out.println(results[0]);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		
	}
}

 在运行客户端代码一定要引入业务接口的包,如果在一个项目里面就可以省略。

分享到:
评论

相关推荐

    xfire中对集合的配置

    这篇博客“xfire中对集合的配置”可能涉及了如何在Xfire中配置和使用集合类,如List、Set、Map等,以便处理服务调用中的数据存储和传递。Xfire利用集合来管理和组织服务相关的元数据,例如服务接口列表、参数类型等...

    webservice-xfire 开发用的JAR包

    标题中的"webservice-xfire 开发用的JAR包"指的是用于开发Web服务的Xfire库的JAR文件集合。这些JAR文件包含了Xfire框架的所有必要组件,例如: 1. **xfire-core.jar**:这是Xfire的核心库,包含了处理SOAP消息、...

    xfire-HelloWorld.rar_webservice_webservice FPGA _xfire hellowor

    在描述中,我们得知这是一个包含服务器端、客户端和完整包的webservice开发实例,而“xfire-all.jar”和“xfire-hello”标签进一步确认了xfire库的使用。 xfire是早期流行的用于构建Web服务的Java库,它提供了简单...

    XFire WebService精简包

    XFire WebService精简包是针对开发者设计的一款轻量级工具集合,主要用于快速搭建和运行XFire WebService项目。在IT行业中,Web服务是一个关键组件,它允许不同系统和应用程序之间进行数据交换和功能调用,实现...

    xfire 访问webservice 需要的jar

    - `xfire-all.jar`: 这个集合JAR包含了XFire的核心组件,包括SOAP引擎、服务容器和数据绑定框架。 - `spring-beans.jar`, `spring-context.jar`, `spring-core.jar`: 由于XFire是基于Spring的,所以需要Spring框架...

    XFire的jar包

    描述中提到的“webservice中创建服务器需要引入XFire的jar包”,这暗示了XFire在Web服务服务器端的角色。在Java中创建一个Web服务服务器通常需要包括处理XML消息、解析WSDL(Web服务描述语言)和执行SOAP(简单对象...

    xfire所需的所有jar包与调用demo

    标题 "xfire所需的所有jar包与调用demo" 指的是一个集合,包含了使用XFire框架构建Web服务所需的所有Java档案(jar包)以及一个演示示例,用于展示如何在实际项目中调用和使用这些库。XFire是早期流行的一款基于Java...

    XFire+Spring整合的依赖包

    标题中的“XFire+Spring整合的依赖包”意味着这是一个集合,包含了将XFire集成到Spring应用中所需的所有依赖库。这样的整合使得开发者可以利用Spring的强大功能来管理服务的生命周期,并结合XFire的高效Web服务处理...

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

    通过这个项目,学习者可以掌握如何使用xFire创建服务端和客户端,理解XML消息的生成和解析过程,以及如何在Java中处理Web服务的输入输出。此外,它还涵盖了如何处理复杂类型,如实体类和集合类,这些都是Java Web...

    webservice插件项目包.zip

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

    java用XFire调用webservice例子.docx

    在Web服务配置中,指定服务名称、接口(test.IAccount)和服务实现类(test.AccountImp),并选择SOAP协议作为通信方式。 自动生成的services.xml配置文件是Web服务的核心配置,它定义了服务的元数据和绑定信息。...

    xfire全部jar包

    【xfire全部jar包】是针对Java开发中的Web服务接口创建工具XFire的库文件集合。在Java开发中,XFire是一个流行的开源框架,用于构建和消费基于SOAP和REST的Web服务。它允许开发者快速、简便地实现服务接口,使得应用...

    xfire客户端需要的jar

    4. **xfire-jaxws.jar**:JAX-WS(Java API for XML Web Services)是Java平台上的标准Web服务API,XFire对JAX-WS的支持使得开发者可以使用Java标准API来创建和消费Web服务。 5. **xfire-stax.jar**:STAX...

    java之webservice_aegis.xml学习

    `aegis.xml`配置文件主要用于在Web服务(尤其是使用了XFire框架的情况下)中定义如何处理复杂的数据类型,特别是那些集合类型的参数或返回值。通过配置`aegis.xml`文件,开发者能够确保Web服务能够正确解析这些复杂...

    java webService 中文与英文教程

    Java WebService是Java技术在分布式应用开发中的一个重要组成部分,它允许不同的系统通过网络进行通信和交互,实现服务的互操作性。本教程涵盖了Java WebService的中文和英文学习资源,适合初学者和有一定基础的学习...

    基于WebService的SOA实现技术研究

    SOA是一种设计方法,它将业务应用设计为服务的集合,这些服务可以独立地进行更新和重用,而WebService是一种实现SOA的技术。WebService具有中立的技术标准、松散耦合性和通用协议规范,是实现SOA的主流技术之一。...

    Spring+hibernate+Xfire

    在"webservice和Spring接合的实例"这一标签中,我们可以推断这个例子还涉及到了Spring对Web服务的支持。Spring提供了多种Web服务工具,如Spring-WS和Spring-Integration-WS,可以方便地创建、消费和管理Web服务。...

Global site tag (gtag.js) - Google Analytics