基于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. linux解压大全

    .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gun ...

  2. CentOS 7 修改root 密码

    环境: 1.重启系统在加载内核的地方按e,编辑启动脚本 2.将ro crashkernel = auto 所在地的 ro 替换为 rw init=/sysroot/bin/sh 3.修改完成后用Ctr ...

  3. PHP用mysql数据库存储session

    大部分使用php的人一旦应用到session都会使用cookie. cookie虽好可是它也会给我们带来一些隐患的. 隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当 ...

  4. 查看服务器配置信息prtdiag与systeminfo实用命令

    UNIX(SUN服务器)bash-2.05# prtdiag -v系统配置:  Sun Microsystems  sun4u Sun Fire V890系统时钟频率:150 MHz内存大小:3276 ...

  5. 百度网页分享js代码

    1.小图标 <div class="bdsharebuttonbox"> <a href="#" class="bds_qzone& ...

  6. Gradient Boosting算法简介

    最近项目中涉及基于Gradient Boosting Regression 算法拟合时间序列曲线的内容,利用python机器学习包 scikit-learn 中的GradientBoostingReg ...

  7. PHP设计原则

    Laravel   PHP设计模式 定义:将PHP设计成一个固化的模式 面向对象设计原则 内聚度:高内聚,表示一个应用程序的单个单元所负责的任务数量和多样性.内聚与单个类或者单个方法单元相关 耦合度: ...

  8. springboot2.x如何添加事务

    什么时候需要添加事务呢?一般情况下,如果该方法有两条SQL语句或者以上都需要添加(个人感觉:)). 首先需要在我们的启动类加上 @EnableTransactionManagement //开启事务管 ...

  9. python反爬之网页局部刷新1

    # ajax动态加载网页 # 怎样判断一个网页是不是动态加载的呢? # 查看网页源代码,如果源码中没有你要的数据,尝试访问下一页,当你点击下一页的时候,整个页面没有刷新, 只是局部刷新了,很大的可能是 ...

  10. fd_set实现原理

    fd_set是一个结构 /* The fd_set member is required to be an array of longs. */ typedef long int __fd_mask; ...