XFire发布Web Services

步骤

1. 把XFire依赖的jar包放入lib文件夹下。

 

2. 在web.xml中加入如下代码:

 

3. 编写程序代码

首先编写一个功能的接口类。

package com.yc.web.services;

public interface HelloWorldService {

    public void sayHello();
    
    public String sayHello(String name);
    
    public String genUUID();
}

再编写一个功能的接口实现类。

package com.yc.web.services;

import java.util.UUID;

public class HelloWorldServiceImpl implements HelloWorldService {

    public void sayHello() {
        System.out.println("hello world");
        
    }

    public String sayHello(String name) {
        
        return "hello "+name;
    }

    public String genUUID() {
        
        return UUID.randomUUID().toString();
    }

    

}

 

4在src下或者直接在webapp\WEB-INF下创建一个文件夹META-INF,在META-INF下边在创建一个目录xfire,在xfire目录里边创建一个services.xml文件,内容如下:


<?xml version="1.0" encoding="UTF-8"?>

<beans>

<service xmlns="http://xfire.codehaus.org/config/1.0">

<name>HelloXfire</name>

<namespace>http://www.freshpower.com.cn</namespace>

<serviceClass>

cn.com.freshpower.services.HelloXfire

</serviceClass>

<implementationClass>

cn.com.freshpower.services.HelloXfireImpl

</implementationClass>

</service>

</beans>

 调用XFire发布的Web Service

 服务以jar包形式发布的时候 直接调用 

当服务端以jar包形式发布,我们就相当于有了客户端的接口类和其自定义对象类。(无接口实现类)。

为了节省时间,我们就直接在1Server下新建一个Client,相当于拥有服务端的客户端。

代码如下:

//这个项目区访问 web service服务器
        
                //创建一个服务的元数据
                Service serviceModel =new ObjectServiceFactory().create(HelloWorldService.class);
                XFire xfire=XFireFactory.newInstance().getXFire();//通过xfire工厂来创建一个xfire的对象
                XFireProxyFactory factory=new XFireProxyFactory(xfire);//创建一个代理工厂
                //定义要访问的服务的地址
                String  serviceUrl="http://localhost/testwebservice/services/helloworld";
                
                HelloWorldService client=null;
                
                client=(HelloWorldService) factory.create(serviceModel, serviceUrl);//xfire 功能是访问 web service 服务器 得到wsdl文件  解析wsdl 知道这个服务方法 返回
                //面向这个接口将实现类创建起来
                
                
                client.sayHello();
                
                String result= client.sayHello("汤高");
                System.out.println(result);
                
                System.out.println(client.genUUID());

    }

XFire 用wsimport 生成后客户端测试类代码
    //创建Service类
        HelloService server=new HelloService();
    
    //获取XxxProType类对象
        HelloServiceProType service =server.getHelloImplPort();
    
    //调用接口中的方法
        String result =service.sayHello();
        System.out.println(result);
   

使用Xfire的Client包 

 

//本地的写法

//String wsdl = "HelloXfire.wsdl"; // 对应的WSDL文件

//Resource resource = new ClassPathResource(wsdl);

//Client client = new Client(resource.getInputStream(), null); //根据WSDL创建客户实例

 

//URL的写法

Client client = new Client(new URL("http://localhost:8080/1Server/service/HelloXfire?wsdl"));

// 调用特定的Web Service方法

Object[] results = client.invoke("sayHello", new Object[]{"freshpower"});

System.out.println(results[0]);

}

}

时间: 2025-01-29 00:14:59

XFire发布Web Services的相关文章

在Eclipse中,用XFire发布web服务

配置及相关说明见http://www.cnblogs.com/xshy3412/archive/2007/09/29/910848.html 仅确定发布xfire需要的最基本的jar activation-1.1.jar commons-logging-1.0.4.jar jdom-1.0.jar jsr173_api-1.0.jar spring-1.2.6.jar stax-utils-20040917.jar wsdl4j-1.6.1.jar wstx-asl-3.2.0.jar xbea

在Rational Application Developer平台上基于JAX-WS开发Web services

引言 Web Services 是一种面向服务的技术,通过标准的 Web 协议提供服务,目的是保证不同平台 的应用服务可以互操作.依据 web services 规范实施的应用之间,无论它们所使用的语言. 平台或内部协 议是什么,都可以相互交换数据,这就是 web services 的好处.本文选择 IBM WebSphere Application Server 作为 web services 的运行环境,并选择 IBM Rational Application Developer(以下简称

通过PL/SQL访问Web Services

在Web Services红得发紫的今天,到处都在谈论和使用Web Services:当然,其中有不小一部分是属于业界炒作.Oracle也始终走在技术的最前沿,早在9i时代就发布了扩展包来支持PL/SQL访问Web Services,并且在Oracle 10g版本中使得该功能变得更加强大:这都源于引入了UTL_DBWS包,其实它是封装了JPublisher,使得PL/SQL开发者只需要使用简单的几个API就能调用Web Services了. 下面我将通过一个实例向你展示如何通过PL/SQL调用W

使用Eclipse和Java SE 6创建独立Web Services应用程序,第1部分

使用Eclipse和Java SE 6创建独立Web Services应用程序,第1部分: Web Services服务端应用程序 开始之前 关于本系列 此系列教程演示如何使用 Java SE 6 创建可轻松地从命令行而不是从 Web 应 用程序服务器容器中运行的独立 Web Services 服务端和客户端应用程序.使用 简单的 Hello World 示例,您将利用 Eclipse IDE.Java SE 6 和 Apache Ant 轻松创建完全可以正常工作的 Web Services 服

基于JAX-WS开发Web services快速入门

Web Services 是一种面向服务的技术,通过标准的 Web 协议提供服务,目的是保证不同平台的应用服务可以互操作.依据 web services 规范实施的应用之间,无论它们所使用的语言. 平台或内部协议是什么,都可以相互交换数据,这就是 web services 的好处.本文选择 IBM WebSphere Application Server 作为 web services 的运行环境,并选择 IBM Rational Application Developer(以下简称 RAD)f

SQL Server 2005中设置Reporting Services发布web报表的匿名访问

原文:SQL Server 2005中设置Reporting Services发布web报表的匿名访问         一位朋友提出个问题:集成到SQL Server 2005中的Reporting Services已经将报表模板发布到IIS服务器,客户端通过浏览器访问时,默认会弹出Windows集成身份验证的对话框.如果在IIS配置里面把允许匿名(IUSR_**)访问的选项勾选,客户端再次访问的时候,会提示IUSR_** 访问权限不足.       对于这个问题,除了要设置IIS允许匿名访问外

如何解决xfire发布的Webservice中Spring注入为空的问题

Spring框架使用中注入为空是一个比较头疼的问题,遇到Webservice和Spring框架配合时,这个问题更容易出现并很难发现问题的原因. 在做SSO系统中就遇到这样的问题,在Service的实现类中注入Ibatis数据库操作的Mapper一直为空,最终发现原因是xfire和Spring配合使用时和普通使用xfire的配置方式不同 xfire可以快速发布Webservice,通常情况下,只需要下边几个步骤. 1. 创建Service接口和实现类 例如SSOMethodsServices和SS

java程序调用xfire发布的webService服务(二)

在上一篇的调用xfire发布的webService服务中,我只是从服务端返回了一个字符串给客户端,却没有测试从客户端传递数据给服务端.而实际应用中一般是不太可能只出现这样的应用场景的,因此我便更进一步测试了客户端传递数据给服务端. 因为相关的jar包在上一篇已经说过,因此便不再重复说明,这次的测试步骤如下: 一.测试向服务端传递字符串(重点在第二个):     为了进一步理解服务搭建,我重新写了一个服务端服务类: 接口: package xfireTest; public interface X

Web Services是什么?

services|web Web Services突然热起来了,特别是M$.net为我们描述了一个互联共享的世界,其实这些美好前景当初在Java诞生时早已经憧憬过,但理想的实现过程总是崎岖漫长. 我们从一个应用看看Web Services是怎么运作的: 有一个咖啡连锁店的老板叫Coffee Break,要拓展自己销售的咖啡品种,他指示他的采购经理去寻找一些新的咖啡提供商,得到他们的咖啡全部价格,并且在需要时能够立即下订单,Coffee Break能够分析他们的价格,并决定选用哪一种咖啡,从哪个公