基于xfire实现webservice的实例

首先下载xfire的jar包,并导入项目当中

下载地址:http://xfire.codehaus.org/Download

  1. 编写实现类
    1. 首先建一个接口把对外开放的方法添加进该接口,实际上就是开放此接口让客户端

获得

package com.test.service;

public class HelloXfireImpl implements HelloXfire {

 public String wanghao(String str) {
return str + " this is xfire,my name is wanghao";
} }
package com.test.service;

public interface HelloXfire {

    public String wanghao(String str);
}

2. 映射web.xml

通过配置web.xml来映射相应的路径,在web.xml添加如下代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

3.services配置文件

创建services文件

在src目录下创建META-INF目录,在该目录下创建一个xfire目录在该目录

下创建services.xml

通过配置此文件来公开我们的接口,客户端可以通过此文件的映射可以找到相应的需要公开的接口

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0"> <service>
<name>HelloXfire</name>
<serviceClass>com.test.service.HelloXfire</serviceClass>
<implementationClass>
com.test.service.HelloXfireImpl
</implementationClass>
<style mce_bogus="1">wrapped</style>
<use>literal</use>
<scope>application</scope>
</service></beans>

获取wsdl文件的地址

什么是wsdl?

参考: http://blog.csdn.net/sunchaohuang/archive/2008/10/14/3076375.aspx

通过web.xml与services.xml对地址的映射我们可以获得如下地址并进行访问后就可
     以得到wsdl文件的url了

访问的地址:
http://localhost:8080/HelloXfire/services/HelloXfire?wsdl

访问后会得到一个类似xml格式的内容 该文件就是一个wsdl文件

4.编写客户端

客户端获得webservice的url地址后创建对外开放的接口的实体类,然后向相应的方法传递参数,经过服务端相应的处理返回需要的结果

不同项目的webservice调用

一般情况下webservice的调用都是在不同的项目间或者不同的语言中来使用的

如果是不同的语言调用webservice应用:

客户端如果是其他语言,则通过得到服务端生成的wsdl或者或者wsdl文件的
            地址做相应的操作得到本语言具体的客户端实现类来调用服务端对外开放的
            方法

如果是不同项目间的调用(java语言为例)

java远程调用。

新建web工程WebServiceTest

由于在MyEclipse中只有新建webservice才会自动导入xfire的所需jar包。

所以使用时自己手动导入,把jar包考入lib文件夹下。

由于XFire的机制,先要建立跟要调用接口同样的接口名,并包含所需方法,才可以调用相应的方法。

客户调用端接口

public interface HelloXfire {
public String wanghao(String str);
}

创建调用业务实现类:(也可以是servlet或者jsp)

package com.test;

import java.net.MalformedURLException;

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.test.service.HelloXfire;
public class Test { public static void main(String args[]) throws MalformedURLException {
Service service = new ObjectServiceFactory().create(HelloXfire.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String url = "http://localhost:8080/webservice/services/HelloXfire";
HelloXfire helloService = (HelloXfire) factory.create(service,url);
helloService.wanghao("成功了吗");
System.out.println(helloService.wanghao("成功了吗"));
}
}

运行结果:成功了吗  this is wanghao+++++++++++++++++++++++++++++++++++++==

参考博客地址1:http://blog.csdn.net/dcju002/article/details/3530936

参考博客地址2: http://blog.csdn.net/java_cxrs/article/details/6448492

简单webservice实现(xFire1.2)的更多相关文章

  1. 使用soap实现简单webservice

    在网上看到一些关于用soap实现简单webservice的一些知识,简单整理一下希望对大家有所帮助. 可以给大家看一下我的简单实现的列子,Soap,大家可以到Github上自行下载. 首先说一下web ...

  2. 一个PHP写的简单webservice服务端+客户端

    首先是服务端,服务端有一个主要的class组成:apiServer.php <?php /** * apiServer.php * * webservice主类 * * @filename ap ...

  3. JAX-WS(三)构建简单webservice部署到tomcat上

    前言: 虽然构建本地的jax-ws的webservice很简单,但要部署到tomcat上要绕过点弯. tomcat本身和jdk都没有jaw-ws的API,所以部署的时候需要额外做点事情,有两种选择 1 ...

  4. 用eclipse建立简单WebService客户端,使用WSDL,用于短信接口发送

    使用工具:eclipse 标准版,不用任何插件. 操作步骤: 建立java Project 命名为mess: 再在project上右键,选择other,选择web service文件类别,选择web ...

  5. Java发布一个简单 webservice应用 并发送SOAP请求

    一.创建并发布一个简单的webservice应用 1.webservice 代码: package com.ls.demo; import javax.jws.WebMethod; import ja ...

  6. 使用Myeclipse进行简单webservice开发的示例

    (转) http://blog.csdn.net/changhenshui1990/article/details/70142371 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要 ...

  7. maven+springmvc+cxf 实现简单webservice小例子

    1.首先你需要创建一个maven项目[当然是web项目] 2.pom.xml添加以下 <properties> <cxf.version>2.2.3</cxf.versi ...

  8. 使用CXF发布WebService服务简单实例

    一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...

  9. axis2开发webservice程序

    一.环境 eclipse + jdk 6.0 + win7 64位 +tomcat7.0 二.创建服务端程序 1.新建web项目,webserviceTest 2.下载axis2,将lib目录下的ja ...

随机推荐

  1. maya安装不了

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  2. Linux常用操作命令介绍

     Linux常用操作命令介绍 重要概念 CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制.查询指令:cat /proc/cpuinfo 内存:大脑中的记忆区块,将皮肤.眼睛等所收集到的信 ...

  3. rails4 ckeditor 的部署以及 中文化

    首先ckeditor 要基于paperclip   之后paperclip 需要你在linux 下安装  ImageMagick 具体安装可参考http://my.eoe.cn/guanmac/arc ...

  4. Zookeeper配置Kafka

    Zookeeper安装 解压:tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C ~/app/ 配置到环境变量: vi ~/.bash_profile expor ...

  5. 高精度运算——java

    java大法 java的框架. import java.io.*; import java.util.*; import java.math.*; public class Main{ public ...

  6. node模块机制

    一.node模块化机制  1.commonJS模块规范包括三部分:模块引用.模块定义.模块标识.例如: //math.js exports.add = function(){    var sum = ...

  7. spring mvc改造成spring boot

    一.新增依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. Redis入门--(一)简介NoSQL

    1.什么是NoSql? 2.为什么需要NoSQL? 互联网经历了1.0和2.0的发展: web1.0 是早期新浪,雅虎等只能浏览,不能交互: 传统关系型数据库在应付web2.0这种动态网站的时候力不从 ...

  9. ListView优化的时候ViewHolder的简洁写法

    在ListVIew做复用优化的时候,经常会写ViewHolder,还需要很麻烦的去findview,我最讨厌写一堆的这样代码了,今天看到了一个极简的写法,很好用,很简洁啊!!! public stat ...

  10. 缺陷=bug?

    Defect(缺陷):是指静态处在于软件工作产品(文档.代码)中的错误,也指软件运行时由于这些错误被激发导致的软件产品与其属性的偏离现象. Bug:Bug通常是软件缺陷(Defect)导致的一些软件故 ...