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

使用xfire发布WebService(二)

阅读更多
本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();
}
}

}

好了 再次成功了,看看服务器端和客户端是不是打印出了相应的东西?
2
0
分享到:
评论

相关推荐

    java使用XFire调用webService接口

    "Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...

    使用XFire发布WebService

    【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web服务变得简单。XFire是Apache CXF的前身,它提供了全面的WS-*支持,包括SOAP、WSDL、UDDI、MTOM等标准,...

    xfire发布webservice服务

    这篇博客文章“xfire发布webservice服务”可能详细介绍了如何使用XFire来构建并发布一个Web服务。 【描述】:“NULL” 虽然描述为空,但我们可以推测文章可能包含了从安装XFire到编写服务接口,再到部署和测试Web...

    Java使用XFire调用WebService接口

    这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...

    使用xfire发布的webservice完整实例

    6. **测试与调用**:发布服务后,可以使用Xfire的测试工具,或者其他的SOAP客户端工具(如SoapUI)来测试你的Web服务。通过发送SOAP请求,你可以验证服务是否按预期工作。 【示例中的员工管理服务】 在这个...

    xfire发布webservice实例无需设置地址和端口号

    xfire简单实例发布webservice,引用到2个jar包的简单例子

    xfire发布webservice

    下面将详细解析如何利用XFire框架发布WebService,并通过一个具体的示例进行深入探讨。 ### XFire框架发布WebService #### 1. 服务器端设置 在服务器端,我们首先需要在开发环境中(本例使用MyEclipse)创建一个...

    xfire发布webservice实例

    用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl

    xfire实现webservice实例

    6. **消费Web服务**:使用XFire的客户端API或者其他的SOAP客户端工具,可以轻松地调用发布的Web服务。 四、XFire的注解支持 XFire引入了注解,使得服务的创建更加简洁。例如,使用`@WebService`注解可以在不编写XML...

    Java使用XFire调用WebService接口.docx编程资料

    ### Java使用XFire调用WebService接口 #### 一、引言 随着互联网技术的发展,不同系统之间的通信变得越来越重要。WebService作为一种重要的分布式计算技术,在跨平台、跨语言的服务交互方面发挥着重要作用。本文将...

    Xfire调用webservice无法传递参数问题

    标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...

    Xfire调用webservice无法接收到参数问题解决

    标题"Xfire调用webservice无法接收到参数问题解决"指出的核心问题是:当使用Xfire作为客户端调用Web服务时,服务端无法正确接收到传递的参数。这可能是由于多种原因引起的,如: 1. **XML序列化与反序列化问题**:...

    xfire调用webservice

    xfire可以与多种类型的WebService结合使用,如SOAP、REST、XML-RPC等。xfire还提供了一个基于annotation的编程模型,使得开发者可以使用简单的Java代码来开发WebService。 xfire的主要特点包括: 1. 简单易用:...

    spring+xfire( 编写webservice完整配置+案例)

    在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务的完整配置,并通过实际案例来学习这一过程。 首先,我们需要了解Spring和XFire的基础。Spring框架提供了一个名为Spring-WS的模块,专门用于构建Web...

    xfire构建WebService例子

    本教程将详细讲解如何使用XFire来创建和消费一个简单的WebService。 首先,我们需要理解什么是XFire。XFire(现已被Apache CXF项目吸收)是一个基于Java的Web服务栈,它简化了SOAP(简单对象访问协议)和WS-*(Web...

    用XFire开发WebService+Spring注解

    【标题】"用XFire开发WebService+Spring注解"涉及的主要知识点是利用XFire框架创建Web服务,并结合Spring框架的注解进行服务的管理和集成。XFire是一个强大的Java Web Service实现,它允许开发者轻松地创建和消费...

    基于 xfire 的 webservice 项目

    总的来说,这个基于XFire的WebService项目是一个很好的学习资源,它涵盖了Web服务的基本概念、XFire的使用方法,以及如何构建和测试Web服务。对于想要深入理解Java Web服务开发的初学者或者开发者来说,这是一个值得...

    Spring+xFire实现webService

    Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...

    使用xfire实现webservice实例

    本文将深入探讨如何使用XFire来创建和消费Web服务,以及它的工作原理。 **1. XFire简介** XFire是Apache CXF项目的前身,其主要目标是提供一种简单、高性能的方式来实现基于SOAP的Web服务。它支持多种Web服务标准,...

Global site tag (gtag.js) - Google Analytics