本Blog所有内容不得随意转载,版权属于作者所有。如需转载请注明出处。
上次内容写了简单的操作基本类型的应用,这次写的是复杂类型的,包括返回值是List ,Map,以及自定义对象等。
1. 在上次所建立的工程基础上,修改IHelloService,增加两个方法:
public Course choose(Student student);
public List test(List temp);
同时修改其实现类HelloService,内容如下:
public Course choose(Student student) {
System.out.println(student.getName());
Course course=new Course();
course.setCourseName("Computer Science");
return course;
}
public List test(List temp) {
for(int i=0;i<temp.size();i++)
{
System.out.println(temp.get(i));
}
List temp2=new ArrayList();
Course course1=new Course();
course1.setCourseName("English");
temp2.add(course1);
Course course2=new Course();
course2.setCourseName("Art");
temp2.add(course2);
return temp2;
}
2. 建立两个类,内容分别如下:
package com.lawrenst.pojo;
public class Course {
private String courseName;
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
}
package com.lawrenst.pojo;
public class Student{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
代码很简单吧,不用我解释吧?
3. 启动服务器,并访问wsdl文件,出现了什么?出现了异常,大概是什么什么为空。
xfire默认是Aegis绑定,需要建立一个XXX.aegis.xml文件,让xfire知道test方法中的参数和返回对象是什么类型的。
建立IHelloService.aegis.xml,注意,必须是和接口名称相同,并且和IHelloService在相同目录下。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="test">
<parameter componentType="java.lang.String" />
<return-type componentType="com.lawrenst.pojo.Course" />
</method>
</mapping>
</mappings>
好了,重启服务器,wsdl文件能够正常显示了。
4. 同样建立客户端(这里我使用的是纯POJO方式,动态方式我没有找到解决的办法,如果哪位高手找到了解决的办法,可以给我留言)
package com.lawrenst.test;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.lawrenst.pojo.Course;
import com.lawrenst.pojo.Student;
import com.lawrenst.service.IHelloService;
public class TestClient {
public static void main(String args[])
{
Service serviceModel=new ObjectServiceFactory().create(IHelloService.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.
newInstance().getXFire());
String url="http://localhost:8080/Xfire/services/HelloService";
try {
IHelloService service=(IHelloService) factory.create(serviceModel, url);
//测试sayHello方法
System.out.println(service.sayHello("lawrenst"));
//测试choose方法
Student student=new Student ();
student.setName("jijingping");
Course course=service.choose(student);
System.out.println(course.getCourseName());
//测试test方法
List temp=new ArrayList();//给test方法传递的参数
temp.add("wangxiaosen");
temp.add("wangxinlei");
temp.add("wangye");
List t=service.test(temp);
for(int i=0;i<t.size();i++)
{
Course c=t.get(i);
System.out.println(c.getCourseName());
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
好了 再次成功了,看看服务器端和客户端是不是打印出了相应的东西?
分享到:
相关推荐
"Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...
【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web服务变得简单。XFire是Apache CXF的前身,它提供了全面的WS-*支持,包括SOAP、WSDL、UDDI、MTOM等标准,...
这篇博客文章“xfire发布webservice服务”可能详细介绍了如何使用XFire来构建并发布一个Web服务。 【描述】:“NULL” 虽然描述为空,但我们可以推测文章可能包含了从安装XFire到编写服务接口,再到部署和测试Web...
这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...
6. **测试与调用**:发布服务后,可以使用Xfire的测试工具,或者其他的SOAP客户端工具(如SoapUI)来测试你的Web服务。通过发送SOAP请求,你可以验证服务是否按预期工作。 【示例中的员工管理服务】 在这个...
xfire简单实例发布webservice,引用到2个jar包的简单例子
下面将详细解析如何利用XFire框架发布WebService,并通过一个具体的示例进行深入探讨。 ### XFire框架发布WebService #### 1. 服务器端设置 在服务器端,我们首先需要在开发环境中(本例使用MyEclipse)创建一个...
用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl
6. **消费Web服务**:使用XFire的客户端API或者其他的SOAP客户端工具,可以轻松地调用发布的Web服务。 四、XFire的注解支持 XFire引入了注解,使得服务的创建更加简洁。例如,使用`@WebService`注解可以在不编写XML...
### Java使用XFire调用WebService接口 #### 一、引言 随着互联网技术的发展,不同系统之间的通信变得越来越重要。WebService作为一种重要的分布式计算技术,在跨平台、跨语言的服务交互方面发挥着重要作用。本文将...
标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...
标题"Xfire调用webservice无法接收到参数问题解决"指出的核心问题是:当使用Xfire作为客户端调用Web服务时,服务端无法正确接收到传递的参数。这可能是由于多种原因引起的,如: 1. **XML序列化与反序列化问题**:...
xfire可以与多种类型的WebService结合使用,如SOAP、REST、XML-RPC等。xfire还提供了一个基于annotation的编程模型,使得开发者可以使用简单的Java代码来开发WebService。 xfire的主要特点包括: 1. 简单易用:...
在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务的完整配置,并通过实际案例来学习这一过程。 首先,我们需要了解Spring和XFire的基础。Spring框架提供了一个名为Spring-WS的模块,专门用于构建Web...
本教程将详细讲解如何使用XFire来创建和消费一个简单的WebService。 首先,我们需要理解什么是XFire。XFire(现已被Apache CXF项目吸收)是一个基于Java的Web服务栈,它简化了SOAP(简单对象访问协议)和WS-*(Web...
【标题】"用XFire开发WebService+Spring注解"涉及的主要知识点是利用XFire框架创建Web服务,并结合Spring框架的注解进行服务的管理和集成。XFire是一个强大的Java Web Service实现,它允许开发者轻松地创建和消费...
总的来说,这个基于XFire的WebService项目是一个很好的学习资源,它涵盖了Web服务的基本概念、XFire的使用方法,以及如何构建和测试Web服务。对于想要深入理解Java Web服务开发的初学者或者开发者来说,这是一个值得...
Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...
本文将深入探讨如何使用XFire来创建和消费Web服务,以及它的工作原理。 **1. XFire简介** XFire是Apache CXF项目的前身,其主要目标是提供一种简单、高性能的方式来实现基于SOAP的Web服务。它支持多种Web服务标准,...