图文并茂——使用xfire编写webservice,并通过C#调用
.首先建立一个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#调用相关推荐
- XFire整合webservice
在网上找了很多关于XFire整合webservice相关的文章,发现都不齐全,让人学起来很费解,下面我给大家详细的讲解一下步骤,让初学者很容易掌握使用: 一.服务端编写 1.在Myeclipse中新建 ...
- java xfire_Java -- 在Eclipse上使用XFire开发WebService
终于,使用Java完成了一个WebService的例子,其中的一个非常小的问题,折腾了我将近一天的时间.下面给出步骤,说明在Java平台上如何开发WebService. 采用的工具:Eclipse3. ...
- 用XFire发布WebService
WebService的概念就不多说了,直接进入主题:如何用XFire发布WebService.比较流行的发布WebService的框架有XFire.CXF.AXIS等等.到目前为止接触过的有XFire ...
- Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice
在日常开发中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升级版).现在只有axis2和cxf官方有更新.今天我们先以一个比较老的引擎为例.来讲诉一下w ...
- 用xfire开发webservice实例
http://sailinglxg.iteye.com/blog/173679 用xfire开发webservice总结 本实例是以简单的加减法(a+b和a-b)运算实现用xfire开发webserv ...
- java xfire webservice 异步_[Java教程]Java中使用webservice,简化开发(xfire的webservice)...
[Java教程]Java中使用webservice,简化开发(xfire的webservice) 0 2016-01-07 15:00:11 首先,使用到的jar先导入项目中, xbean-sprin ...
- spring整合cxf,轻松编写webService客户端、服务端
WebService是一种跨编程语言.跨操作系统平台的远程调用技术,广泛应用在实际开发,接口实现,系统集成. 服务端 List item 添加maven依赖 项目中除了spring相关的依赖以外,还需 ...
- PHP Webservice的发布与调用
PHP Webservice的发布与调用 1. 环境配置 配置php.ini,把php_soap.dll前面的分号去掉, 不然会报错 class soapserver not found 重启apa ...
- python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...
python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...
最新文章
- 关于学习Python的一点学习总结(18->序列解包)
- 加权平均融合消除图像拼接的拼缝(Python 代码)
- 【记录一个问题】cuda核函数可能存在栈溢出,导致main()函数退出后程序卡死30秒CUDA...
- 善用各类知识管理工具,达到事半功倍的效果
- a3国际服服务器未响应,A3幸存者国际服
- JVM-程序计数器02
- ThinkPHP5.0中报错could not find driver的解决方式
- Tensorflow学习笔记4:分布式Tensorflow
- TAUCS库的编译(vs2010)
- 获取客户端用户真实 IP 地址
- JNDI:对java:comp/env的研究
- VirtualBox安装教程及使用(Windows)
- 1386 - Cellular Automaton
- vlookup使用步骤_VLOOKUP函数的使用方法详解
- Pro ASP.NET MVC –第四章 语言特性精华
- 分区失败,在计算机中不能打开磁盘,但是在磁盘管理软件中能打开的解决方法
- 解决HbuildX无法格式化TS文件的问题
- apk文件部署到云服务器,上传apk到云服务器
- cesium 自定义百度底图
- 当双十一的广告强行闯入生活
热门文章
- java中输入char类型_java中如何输入char类型
- MySQL集群中主从切换
- 【企业管理】企业创造的要素
- Python 的 eval() 与 exec()区别
- Java中使用Base64进行编码解码的工具类-将验证码图片使用Base64编码并返回给前端
- Nginx配置实例-动静分离实例:搭建静态资源服务器
- String转BigDecimal,BigDecimal常用操作,以及避免踩坑
- 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- flutter开发vscode插件推荐(开发必备)
- Cisco Packet Tracer7.0的安装汉化与使用