.首先建立一个web service工程:




点击finish之后,myeclipse自动帮你生成services.xml以及web应用目录结构,其中的services.xml是你导出服务的配置文件,注意在WEB-INF/web.xml文件中配置了xfire自己的servlet.

<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>

2.接下来,现在编写要导出的pojo类,首先是接口:

package net.rubyeye.webservicedemo;
//Generated by MyEclipse
public interface IHelloWorldService {
public String sayHello(String name);
}

这个接口我们只提供一个方法:sayHello(),我们没有采用JSR181标注式的声明方式,还是采用xml配置文件。然后是实现类:

package net.rubyeye.webservicedemo;
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String name){
return "hello,"+name;
    }
}

最后,配置下services.xml文件:

<service>
<name>HelloWorldService</name>
<serviceClass>
            net.rubyeye.webservicedemo.IHelloWorldService
</serviceClass>
<implementationClass>
            net.rubyeye.webservicedemo.HelloWorldServiceImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>

我们的web服务名称叫做HelloWorldService,接口是IHelloWorldService,实现类是HelloWorldServiceImpl。注意,其实我们这三个步骤可以一步完成,只要直接使用myeclipse的new web service向导即可


3.然后将此工程部署到tomcat上,通过http://localhost:8081/HelloWorld/services/HelloWorldService?wsdl可以看到生成的wsdl文件。注意,在部署之后,services会被拷贝到WEB-INF\classes\META-INF\xfire目录下,xfire会自动搜索此目录并加载配置文件。我们可以编写一个client来测试web服务,你也可以点击myeclipse上的Launch the Web Services来测试web服务

4.编写client代码:

package net.rubyeye.webservicedemo;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
public class HelloWorldClient {
public static void main(String args[]) {
        Service srvcModel = new ObjectServiceFactory()
                .create(IHelloWorldService.class);
        XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
                .newInstance().getXFire());
        String helloWorldURL = "http://localhost:8081/HelloWorld/services/HelloWorldService";
try {
            IHelloWorldService srvc = (IHelloWorldService) factory.create(
                    srvcModel, helloWorldURL);
            System.out.print(srvc.sayHello("dennis"));
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}

执行,打印:hello,dennis
注意,你也可以使用MyEclipse的new webservice client向导自动生成client,同时生成供客户端调用的stub类等。
最后,我们再编写一个C#调用此web service的例子。
1.在vs.net中新建一个windows 应用程序项目,并添加一个button,和一个label


2.项目菜单——》添加web应用,输入我们要调用的web服务的wsdl文件的url,并点击前往。

3.添加引用之后,vs.net会自动帮你生成提供给客户端调用的stub等,这些文件在名为localhost的命名空间下。此空间下将有一个类,名为HelloWorldService。最后,在button1的onclick事件中添加代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MyProject
{
public partial class Form1 : Form
    {
        localhost.HelloWorldService helloService = new localhost.HelloWorldService();
public Form1()
        {
            InitializeComponent();
        }
private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = helloService.sayHello("dennis");
        }
    }
}

我们new一个HelloWorldService ,并调用sayHello方法,将结果显示在label上
4.执行ctr+F5

转载于:https://www.cnblogs.com/pony/archive/2008/07/25/1251484.html

图文并茂——使用xfire编写webservice,并通过C#调用相关推荐

  1. XFire整合webservice

    在网上找了很多关于XFire整合webservice相关的文章,发现都不齐全,让人学起来很费解,下面我给大家详细的讲解一下步骤,让初学者很容易掌握使用: 一.服务端编写 1.在Myeclipse中新建 ...

  2. java xfire_Java -- 在Eclipse上使用XFire开发WebService

    终于,使用Java完成了一个WebService的例子,其中的一个非常小的问题,折腾了我将近一天的时间.下面给出步骤,说明在Java平台上如何开发WebService. 采用的工具:Eclipse3. ...

  3. 用XFire发布WebService

    WebService的概念就不多说了,直接进入主题:如何用XFire发布WebService.比较流行的发布WebService的框架有XFire.CXF.AXIS等等.到目前为止接触过的有XFire ...

  4. Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice

    在日常开发中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升级版).现在只有axis2和cxf官方有更新.今天我们先以一个比较老的引擎为例.来讲诉一下w ...

  5. 用xfire开发webservice实例

    http://sailinglxg.iteye.com/blog/173679 用xfire开发webservice总结 本实例是以简单的加减法(a+b和a-b)运算实现用xfire开发webserv ...

  6. java xfire webservice 异步_[Java教程]Java中使用webservice,简化开发(xfire的webservice)...

    [Java教程]Java中使用webservice,简化开发(xfire的webservice) 0 2016-01-07 15:00:11 首先,使用到的jar先导入项目中, xbean-sprin ...

  7. spring整合cxf,轻松编写webService客户端、服务端

    WebService是一种跨编程语言.跨操作系统平台的远程调用技术,广泛应用在实际开发,接口实现,系统集成. 服务端 List item 添加maven依赖 项目中除了spring相关的依赖以外,还需 ...

  8. PHP Webservice的发布与调用

    PHP Webservice的发布与调用 1.  环境配置 配置php.ini,把php_soap.dll前面的分号去掉, 不然会报错 class soapserver not found 重启apa ...

  9. python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...

    python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...

最新文章

  1. 关于学习Python的一点学习总结(18->序列解包)
  2. 加权平均融合消除图像拼接的拼缝(Python 代码)
  3. 【记录一个问题】cuda核函数可能存在栈溢出,导致main()函数退出后程序卡死30秒CUDA...
  4. 善用各类知识管理工具,达到事半功倍的效果
  5. a3国际服服务器未响应,A3幸存者国际服
  6. JVM-程序计数器02
  7. ThinkPHP5.0中报错could not find driver的解决方式
  8. Tensorflow学习笔记4:分布式Tensorflow
  9. TAUCS库的编译(vs2010)
  10. 获取客户端用户真实 IP 地址
  11. JNDI:对java:comp/env的研究
  12. VirtualBox安装教程及使用(Windows)
  13. 1386 - Cellular Automaton
  14. vlookup使用步骤_VLOOKUP函数的使用方法详解
  15. Pro ASP.NET MVC –第四章 语言特性精华
  16. 分区失败,在计算机中不能打开磁盘,但是在磁盘管理软件中能打开的解决方法
  17. 解决HbuildX无法格式化TS文件的问题
  18. apk文件部署到云服务器,上传apk到云服务器
  19. cesium 自定义百度底图
  20. 当双十一的广告强行闯入生活

热门文章

  1. java中输入char类型_java中如何输入char类型
  2. MySQL集群中主从切换
  3. 【企业管理】企业创造的要素
  4. Python 的 eval() 与 exec()区别
  5. Java中使用Base64进行编码解码的工具类-将验证码图片使用Base64编码并返回给前端
  6. Nginx配置实例-动静分离实例:搭建静态资源服务器
  7. String转BigDecimal,BigDecimal常用操作,以及避免踩坑
  8. 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  9. flutter开发vscode插件推荐(开发必备)
  10. Cisco Packet Tracer7.0的安装汉化与使用