对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映射:
<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>
IHelloService.doc.xml应该可以不用写吧:
<service>
<documentation>
Service which allows to search for books
</documentation>
<method name="get" parametersNumber="1" >
<documentation>
根据所给的用户,填充名字
</documentation>
<parameter index="0">
<documentation>
用户实体
</documentation>
</parameter>
<return>
<documentation>
带名字的实体
</documentation>
</return>
</method>
<method name="getAll" parametersNumber="1" >
<documentation>
继续将传递过来的list进行填充
</documentation>
<parameter index="0">
<documentation>
用户集合
</documentation>
</parameter>
<return>
<documentation>
用户集合
</documentation>
</return>
</method>
</service>
客户端代码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();
}
}
}
在运行客户端代码一定要引入业务接口的包,如果在一个项目里面就可以省略。
分享到:
相关推荐
这篇博客“WebService--xfire中对集合的配置和操作”可能主要讨论了如何在XFire中处理集合类型的数据,包括数组、List或Set等。 在XFire中,配置是关键部分,它涉及到服务的定义、绑定以及数据的序列化和反序列化。...
9. **xbean-spring-2.8.jar**:XBean是Apache项目的模块,用于Spring框架,提供了更高级的XML配置功能,包括自动检测和加载类路径中的XML配置。 10. **xfire-aegis-1.2.6.jar**:Aegis是XFire的一个子项目,提供了...
这个“xfire的jar包集合”很可能是XFire框架所需的所有依赖库文件,方便用户一次性导入到项目中进行开发。 XFire的核心功能在于它的轻量级设计和对WS-I(Web Services Interoperability Organization)基本profile...
2. xfire-all-1.2.6.jar:这是XFire的完整集合包,包含了所有必要的模块,用于快速开始Web服务开发。 3. xfire-core-1.2.6.jar:XFire的核心库,包含了处理Web服务请求和响应的基本组件。 4. xbean-spring-2.8.jar...
4. **xfire-spring.jar**:XFire与Spring框架的集成库,使得可以利用Spring的依赖注入和配置管理特性来管理和部署XFire服务。 5. **xfire-xmlbeans.jar**:如果项目中使用了XMLBeans作为XML解析器,那么这个jar包...
4. **配置XFire**: 创建Web服务客户端或服务器端时,需要在配置文件中指定服务接口、实现类、WSDL位置等信息。这通常通过XML配置文件完成,例如`xfire-config.xml`。 5. **服务的发布与消费**: 使用XFire,你可以...
标题中的“XFire+Spring整合的依赖包”意味着这是一个集合,包含了将XFire集成到Spring应用中所需的所有依赖库。这样的整合使得开发者可以利用Spring的强大功能来管理服务的生命周期,并结合XFire的高效Web服务处理...
1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或Gradle将其添加到你的项目依赖中。如果使用的是IDE,如Eclipse或IntelliJ IDEA,通常可以通过插件来管理这些依赖。 2. **解析WSDL**...
在Xfire客户端中,JAR文件扮演着至关重要的角色,它们包含了程序的可执行代码、库、资源和配置信息。以下是一些可能存在于Xfire客户端JAR文件中的关键组件: 1. **主执行文件**:这是启动Xfire客户端的入口点,通常...
XFire完整jar包是一个集合了多个关键库的压缩文件,主要目标是提供一个完整的XFire运行环境。XFire是一款开源的、基于Java的轻量级Web服务实现框架,它允许开发者快速、简单地创建和部署Web服务。这个jar包包含了...
【xfire全部jar包】是针对Java开发中的Web服务接口创建工具XFire的库文件集合。在Java开发中,XFire是一个流行的开源框架,用于构建和消费基于SOAP和REST的Web服务。它允许开发者快速、简便地实现服务接口,使得应用...
这个“XFire_lib相关的jar所有包”集合包含了运行和开发基于XFire的应用程序所需的所有核心库和依赖项。在这个压缩包中,用户可以直接引用这些JAR文件,而无需单独寻找和管理各个组件。 XFire的核心功能包括: 1. ...
这个“xfire客户端需要的jar”文件集合,显然是为了支持基于XFire的客户端应用程序运行而必需的Java类库。 首先,让我们深入了解一下XFire。XFire是Apache CXF项目的前身,它最初设计的目标是简化Web服务的开发过程...
标题中的"webservice-xfire 开发用的JAR包"指的是用于开发Web服务的Xfire库的JAR文件集合。这些JAR文件包含了Xfire框架的所有必要组件,例如: 1. **xfire-core.jar**:这是Xfire的核心库,包含了处理SOAP消息、...
2. **Aegis Binding**:Aegis是xfire中的数据绑定模块,负责将Java对象转换为XML消息,反之亦然。它支持基本数据类型、集合、数组、枚举以及复杂对象的转换。 3. **Stax**:xfire使用StAX(Streaming API for XML)...
8. **异常处理**:XFire提供了对Java异常到SOAP fault的自动转换,使得错误处理更加直观。 9. **测试工具**:XFire提供了内置的测试工具,如XFire Console,帮助开发者快速验证服务的正确性和性能。 10. **文档...
标题 "xfire所需的所有jar包与调用demo" 指的是一个集合,包含了使用XFire框架构建Web服务所需的所有Java档案(jar包)以及一个演示示例,用于展示如何在实际项目中调用和使用这些库。XFire是早期流行的一款基于Java...
XFire WebService精简包是针对开发者设计的一款轻量级工具集合,主要用于快速搭建和运行XFire WebService项目。在IT行业中,Web服务是一个关键组件,它允许不同系统和应用程序之间进行数据交换和功能调用,实现...
本项目“Java Web Service xFire Demo”是一个完整的示例,用于演示如何在Java环境中使用xFire实现Web服务。 首先,让我们深入了解xFire的核心概念。xFire基于Apache CXF项目,它提供了强大的XML绑定、协议处理和WS...