基于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. Oracle PL/SQL 实现excel PMT函数、PPMT函数

    PMT函数 1.每月本息金额  = (本金×月利率×(1+月利率)^还款月数)÷ ((1+月利率)^还款月数-1) ,in_financeAmount in number) return number ...

  2. 给用户添加sodu权限

    vim /etc/sudoers 进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的 ...

  3. Missing artifact jdk.tools:jdk.tools:jar:1.6

    今天从svn上面下载了一个mavan项目,出现Missing artifact jdk.tools:jdk.tools:jar:1.6 这个错误. 怎么解决了,在我的根pom.xml 下加入这个依赖就 ...

  4. Quartz使用(6) - Quartz项目实战

    本片博文将阐述项目工作中使用Quartz的情况,包含项目背景.项目框架.Quartz集群部署等方面,重点讲述如何在实际项目中使用Quartz. 1. 背景 因项目需求,需要定时调用数据下载接口,并将数 ...

  5. linux工具:快速返回某级父目录--bd

    当我们在linux服务器上切换父目录时,通常使用cd ../../,有几级目录就输入几次"../",如果目录嵌套的过深,就会有点晕菜...因此,本次介绍的这款工具,可以快速的返回指 ...

  6. Jetty数据同步使用

    1. Jetty简介 Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形 ...

  7. SQLSERVER 自增列,值突然增大1000

    SQLSERVER 自增列,值突然增大1000https://blog.csdn.net/lichxi1002/article/details/40074247  

  8. DotNetty 跨平台的网络通信库(转)

    久以来,.Net开发人员都非常羡慕Java有Netty这样,高效,稳定又易用的网络通信基础框架.终于微软的Azure团队,使用C#实现的Netty的版本发布.不但使用了C#和.Net平台的技术特点,并 ...

  9. Smile with face. Smile with mind.

    Smile with face. Smile with mind.微笑不仅是挂在脸上的,更是发自心底的.

  10. 《java提高数据导入效率优化思路》

    写在前边的实现需求: 1.总共10万个电话号码: 2.电话号码中有重复和错误: 3.查找出正确的号码(不重复): 一.优化前的实现方式: 1.先用正则过滤一遍10万条数据,找出错误的: 2.用List ...