前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XFire发布Web Services

XFire发布Web Services

作者头像
汤高
发布2018-01-11 17:27:29
8420
发布2018-01-11 17:27:29
举报
文章被收录于专栏:积累沉淀积累沉淀积累沉淀

步骤

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]);

}

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-09-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤
  •  调用XFire发布的Web Service
    • 使用Xfire的Client包 
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档