文档库 最新最全的文档下载
当前位置:文档库 › WebService

WebService

WebService
WebService

Apache Axis2 环境搭配详解

WebService概念:它可以让一个程序透明的调用互联网程序,不用管具体实现细节,只要WebService 公开了服务接口,远程客户端就可以调用服务。Webservice基于HTTP协议,它是分布式应用程序的发展趋势。

Apache Axis是一个开源的WebSerbive运行引擎,现在拥有1.x和2.x两个版本。本文讲解Axis2.x版本,该版本较Axis1.x版本在体系结构上进行了重写,具有更高的效率、更加模块化也更加面向XML。Axis 应该是最早一批SOAP(简单对象访问协议),该协议提供了标准的RPC方法来调用WebService。SOAP、RPC是建立在HTTP请求响应模式上的。

1.环境准备:

IDE:Eclipse3.5

依赖的JAR文件:

https://www.wendangku.net/doc/6b4740012.html,(Apache官方网站)上去下载:

a.WebService所需的包,这里我们下载Axis2的1.5.1版本。

b.Jakarta项目下的Ex-Jakarta项目下的HttpComponents子项目的核心JAR包,HttpCore4.1-alpha1的Binary包。

配置Eclipse,Eclipse自带了开发WebService的工具。

打开Eclipse-->点击菜单windows-->Preferences-->WebServices-->Axis2Preferences-->设置Axis2 runtime location为Axis2下载后并解压的核心包的位置:

选择后Eclipse会自动检测包是否正确。如果successfully提示表示设置正确。

2.在Eclipse创建一个WebProject时,点击Configuration的Modify会出现下图界面:

勾选Axis2 Web Services按OK。回到新建WebProject界面,完成项目创建。

创建成功后会发现在WEB-INF文件夹下会多出一个axis2-web的文件夹,这个是Axis2的项目文件夹。

现在启动服务器会抛出异常,这是因为Eclipse在自动加载生成该项目时有几个问题需要手动修复,下面分别列出:

问题一:会抛出异常:https://www.wendangku.net/doc/6b4740012.html,ng.ClassNotFoundException:

org.apache.axis2.transport.http.AxisAdminServlet

是因为生动生成的web.xml文件中所指定的AxisAdminServlet包路径有错。

自动生成的源码如下:

Apache-Axis Servlet

AxisServlet

org.apache.axis2.transport.http.AxisServlet

AxisServlet

/servlet/AxisServlet

AxisServlet

*.jws

AxisServlet

/services/*

Apache-Axis Admin Servlet Web Admin

AxisAdminServlet

org.apache.axis2.transport.http.AxisAdminServlet

100

AxisAdminServlet

/axis2-admin/*

注意红色字体部分,我们可以去看一下所下载的Axis2的源包。AxisAdminServlet类所在的包路径并不在下列这个路径中org.apache.axis2.transport.http,该类是属于包org.apache.axis2.webapp下。

问题二:会抛出异常:https://www.wendangku.net/doc/6b4740012.html,ng.ClassNotFoundException: org.apache.http.HttpResponseFactory,是因为少JAR包。将开始下好的HttpCore4.1-alpha1包解压后主文件夹下的lib文件夹下有

httpcore-4.1-alpha1.jar包。将其拷贝到WEB-INF下的lib文件夹中。

重启服务器,正常启动成功,在浏览器地址栏输入:http://localhost:9000/WebServiceProject/axis2-web/

进入主页,如下图:表示Axis2部署成功:

点击Validate进入验证Axis2环境界面:

这个页面会加册Axis2运行必备的一些库是否已具备,如果看到下列图中的绿色字体表示环境已搭建成功:

再次返回主页,点击Service,可以看到当前可用的Service列表。默认有一个名为“Version”的WebService。

再次返回主页,点击Adminnistation,进入管理控制台的登录界面:

输入username(用户名)和password(密码)。默认用户名为:admin,密码为:axis2。

点击登录进入Axis2管理控制平台:

可点击左边的Available Service产看当前可用的Service列表。

3.开发实例

在src下新建一个名为HelloApp的类:

package service;

public class HelloApp {

public HelloApp() {

}

/**

* 对外公开的服务方法

*/

public String sayHello(String name) {

return "Hello," + name;

}

}

在Eclipse中将鼠标放在刚才建立的HelloApp.java上点击右键,弹出菜单选择Web Service再选择Create Web Service,会弹出下图的界面:

上下分别有个滑块,把上面的滑块滑至最上端(为Test service)。把下方滑块滑至第二格(Develop client)表示生成当前服务的客户端代码(完成后会在Eclipse中会自动生成一个名字为:[当前工程名+Client]的工程),同时选中publish the Web Service(公开这个Web Service)。点击下一步直至完成。步骤如图:

保持默认设置,点击下一步。

继续保持默认设置,点击下一步。

当前设置Port Name(端口名)选择:当前工程名+SOAP11HttpSoap11Endpoint。并勾选下面的Generate a JUnit test case to the service。其它选项保持默认点击完成。

完成后可以看到Web Service Explorer中可以看到我们刚刚对外公开的HelloApp服务,如下图:

选中左边窗口中的HelloApp服务,找到并点击右边窗口中的Type(类型)为SOAP的服务绑定Name。进入下图界面:

当前列出了当前公开服务可用的方法,当前服务只有一个sayHello方法。点击Operations下Name为sayHello的方法,进入下图的界面:

当前列出了当前公开服务的方法及参数。当前的唯一方法sayHello有一个String类型的名为name的参数。

点击Add,转到下图:

为当前公开服务的sayHello方法传入一个String类型的name参数“EugeneHeen”,点击Go按钮。此时下面的Status(状态窗口)中会显示调用该方法后的结果。点击Source可以浏览到已经被SOAP分装好该服务的XML文件。

4.Eclipse生成的Client工程

在Eclipse中找到自动生成的客户端工程。在src下有一个当前公开服务的测试类。这是一个JUnit测试用例。

切记和服务端一样,这里需要将我们开始下好的HttpCore4.1-alpha1包解压后主文件夹下的lib文件夹下有httpcore-4.1-alpha1.jar包。不然会抛出异常:https://www.wendangku.net/doc/6b4740012.html,ng.ClassNotFoundException:

org.apache.http.HttpResponseFactory

如图:

打开HelloAppTest.java,找到testSayHello(String name)方法。里面有这样一行注释// TODO : Fill in the sayHello4 here,它提示我们在此设置调用方法的参数。

Sub是存根。是有Axis2帮我们生成的客户端存根代码。可以这样理解,Sub封装了查找服务、编码、发送、接收、解码请求等一系列动作的帮助类。有了它我们不用去关心WebService底层调用的技术细节,而是直接调用WebService提供的方法。

service.HelloAppStub stub = new service.HelloAppStub();这是方法中的第一行代码,实例化了一个存根。

方法中的第二行代码:

service.HelloAppStub.SayHello sayHello4 =

(service.HelloAppStub.SayHello)getTestObject(service.HelloAppStub.SayHello.class);

调用了方法

public org.apache.axis2.databinding.ADBBean getTestObject(https://www.wendangku.net/doc/6b4740012.html,ng.Class type) throws

https://www.wendangku.net/doc/6b4740012.html,ng.Exception{

return (org.apache.axis2.databinding.ADBBean) type.newInstance();

}

返回一个org.apache.axis2.databinding.ADBBean类型的对象。利用他来为要调用的方法设值。

为参数设值:sayHello4.setName("EugeneHeen");

最后自己编写一行打印调用当前公开服务的sayHello方法的语句:

System.out.println(stub.sayHello(sayHello4).local_return);

利用存根调用当前公开服务的sayHello(String name)方法,一定要调用local_return才能正确返回字符串。

运行该JUnit得到的结果与我们用Web Service Explorer为方法设值是一样的。这就是客户端编码调用。

webservice注解详解

webservice注解详解

javax.jws.WebService 当实现Web Service 时,@WebService 注释标记Java 类;实现Web Service 接口时,标记服务端点接口(SEI)。 要点: ? 实现Web Service 的Java 类必须指定@WebService 或@WebServiceProvider 注释。不能同时提供这两种注释。 此注释适用于客户机/服务器SEI 或JavaBeans 端点的服务器端点实现类。 ? 如果注释通过endpointInterface属性引用了某个SEI,那么还必须使用@WebService 注释来注释该SEI。 ? 请参阅适用于使用@WebService 注释的类的方法的规则,以了解更多信息 ?注释目标:类型 ?属性: - name wsdl:portType的名称。缺省值为Java 类或接口的非限定名称。(字符串)- targetNamespace 指定从Web Service 生成的WSDL 和XML 元素的XML 名称空间。缺省值为从包含该Web Service 的包名映射的名称空间。(字符串) - serviceName 指定Web Service 的服务名称:wsdl:service。缺省值为Java 类的简单名称 + Service。(字符串) - endpointInterface 指定用于定义服务的抽象Web Service 约定的服务端点接口的限定名。如果指定了此限定名,那么会使用该服务端点接口来确定抽象WSDL 约定。(字符串)- portName wsdl:portName。缺省值为https://www.wendangku.net/doc/6b4740012.html,+Port。(字符串)

webservice注解详解

javax.jws.WebService 当实现Web Service 时,@WebService注释标记Java 类;实现Web Service 接口时,标记服务端点接口(SEI)。 要点: ? 实现Web Service 的Java 类必须指定@WebService 或@WebServiceProvider 注释。 不能同时提供这两种注释。 此注释适用于客户机/服务器SEI 或JavaBeans 端点的服务器端点实现类。 ? 如果注释通过endpointInterface属性引用了某个SEI,那么还必须使用@WebService 注释来注释该SEI。 ? 请参阅适用于使用@WebService 注释的类的方法的规则,以了解更多信息 ?注释目标:类型 ?属性: - name wsdl:portType的名称。缺省值为Java 类或接口的非限定名称。(字符串)- targetNamespace 指定从Web Service 生成的WSDL 和XML 元素的XML 名称空间。缺省值为从包 含该Web Service 的包名映射的名称空间。(字符串) - serviceName 指定Web Service 的服务名称:wsdl:service。缺省值为Java 类的简单名称 + Service。(字符串) - endpointInterface 指定用于定义服务的抽象Web Service 约定的服务端点接口的限定名。如果指定了此 限定名,那么会使用该服务端点接口来确定抽象WSDL 约定。(字符串) - portName wsdl:portName。缺省值为https://www.wendangku.net/doc/6b4740012.html,+Port。(字符串)

Eclipse下WebService学习

Eclipse下WebService学习 文档作者:weichaoduo 日期:2006.7.7

1.准备工作 收集相关资料,下载并安装必备的工具。由于以前对WebService学习不是很重视,因此对WebService还不是很熟悉,不过我还是对它有些印象的,因为以前我曾经使用Delphi 和https://www.wendangku.net/doc/6b4740012.html,做过相关的例子。阅读几遍的相关资料后对有些抽象的概念还是有些模糊,但总体上认清了WebService的本质或者是用途吧。WebService其实就是向外部(跨语言甚至平台)公开一些函数方法等等内容,使外部能访问到所要发布的“服务”。几经周折终于完成了WebSerrvice环境的配置工作。 相关资料有: ●《Tomcat5.0.28下AXIS完全安装手册》 ●《详解怎样使用Axis开发Web Service的实例.》 ●《SOAP 是如何工作的》 ●《SOAP的协议规范》 ●《SOAP净化有线协议》 ●〈Web Services技術介紹〉 相关工具: ●Sun java JDK1.5 ●Apache Tomcat5.0/5.5 ●SUN JWSDP开发包 ●Axis开发包 ●Eeclipse集成开发环境 ●Eclipse插件—Workshop Studio ●Netbeans5.0 安装环境步骤省略。(其实直接下载JDK5。0+Tomcat5.0(最好是SUN公司的jwsdp-1_4-windows-i586.exe) + Workshop Studio就可以了)

2.初探Java中的WebService 首先按着资料上的例子做,利用JWS方法,建立一个温度转换的Java函数,然后发布出来,并最终调用它。步骤如下: (1)打开Eclipse配置好相关的环境,新建立一个”动态Web应用程序”—>新建立一个类 在该类中写入温度转换函数。如下列图: 图2.1 建立新的”动态Web应用程序“

android调用WebService接口详解

Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。PC版本的WEbservice客户端库非常丰富,例如Axis2,CXF等,但这些开发包对于Android系统过于庞大,也未必很容易移植到Android系统中。因此,这些开发包并不是在我们的考虑范围内。适合手机的WebService客户端的SDK有一些,比较常用的有Ksoap2,可以从https://www.wendangku.net/doc/6b4740012.html,/p/ksoap2-android/downloads/list进行下载;将下载的ksoap2-android-assembly-2.4-jar-with-dependencies.jar包复制到Eclipse工程的lib目录中,当然也可以放在其他的目录里。同时在Eclipse工程中引用这个jar包。 具体调用调用webservice的方法为: (1)指定webservice的命名空间和调用的方法名,如: SoapObject request =new SoapObject(http://service,”getName”); SoapObject类的第一个参数表示WebService的命名空间,可以从WSDL文档中找到WebService的命名空间。第二个参数表示要调用的WebService方法名。 (2)设置调用方法的参数值,如果没有参数,可以省略,设置方法的参数值的代码如下: Request.addProperty(“param1”,”value”); Request.addProperty(“param2”,”value”); 要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,但该参数值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即可。 (3)生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述,代码为: SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); Envelope.bodyOut = request; 创建SoapSerializationEnvelope对象时需要通过SoapSerializationEnvelope类的构造方法设置SOAP协议的版本号。该版本号需要根据服务端WebService的版本号设置。在创建SoapSerializationEnvelope对象后,不要忘了设置SOAPSoapSerializationEnvelope类的bodyOut属性,该属性的值就是在第一步创建的SoapObject对象。 (4)创建HttpTransportsSE对象。通过HttpTransportsSE类的构造方法可以指定WebService的WSDL文档的URL: HttpTransportSE ht=new HttpTransportSE(“http://192.168.18.17:80 /axis2/service/SearchNewsService?wsdl”); (5)使用call方法调用WebService方法,代码: ht.call(null,envelope);

常用的webservice接口

商业和贸易: 1、股票行情数据WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询) Endpoint:https://www.wendangku.net/doc/6b4740012.html,/WebServices/StockInfoWS.asmx Disco:https://www.wendangku.net/doc/6b4740012.html,/WebServices/StockInfoWS.asmx?disco WSDL:https://www.wendangku.net/doc/6b4740012.html,/WebServices/StockInfoWS.asmx?wsdl 支持香港股票、深圳、上海封闭式基金、债券和股票;支持多股票同时查询。数据即时更新。此中国股票行情数据WEB 服务仅作为用户获取信息之目的,并不构成投资建议。支持使用| 符号分割的多股票查询。 2、中国开放式基金数据WEB 服务 Endpoint:https://www.wendangku.net/doc/6b4740012.html,/WebServices/ChinaOpenFundWS.asmx Disco:https://www.wendangku.net/doc/6b4740012.html,/WebServices/ChinaOpenFundWS.asmx?disco WSDL:https://www.wendangku.net/doc/6b4740012.html,/WebServices/ChinaOpenFundWS.asmx?wsdl 中国开放式基金数据WEB 服务,数据每天15:30以后及时更新。输出数据包括:证券代码、证券简称、单位净值、累计单位净值、前单位净值、净值涨跌额、净值增长率(%)、净值日期。只有商业用户可获得此中国开放式基金数据Web Services的全部功能,若有需要测试、开发和使用请QQ:8698053 或联系我们 3、中国股票行情分时走势预览缩略图WEB 服务 Endpoint: https://www.wendangku.net/doc/6b4740012.html,/webservices/ChinaStockSmallImageWS.asmx Disco: https://www.wendangku.net/doc/6b4740012.html,/webservices/ChinaStockSmallImageWS.asmx?disco WSDL: https://www.wendangku.net/doc/6b4740012.html,/webservices/ChinaStockSmallImageWS.asmx?wsdl 中国股票行情分时走势预览缩略图WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。返回数据:2种大小可选择的股票GIF分时走势预览缩略图字节数组和直接输出该预览缩略图。 4、外汇-人民币即时报价WEB 服务 Endpoint: https://www.wendangku.net/doc/6b4740012.html,/WebServices/ForexRmbRateWebService.asmx Disco:https://www.wendangku.net/doc/6b4740012.html,/WebServices/ForexRmbRateWebService.asmx?disco

XMLWebService完全实例详细解析

XMLWebService完全实例详细解析 首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice传递的数据只能是序列化的数据,典型的就是xml数据,这里我们也只讨论XML数据的传输. 有了一些对XML webservice的初步了解后,我们将切入正题,即是用一个具体的webservice事例的形式来讲解具体的webservice用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003为编译环境,C#为语言,SqlServcer2000为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表webservice的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite的服务.两个资源站,就有两个服务,我们称为SiteAService和 SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关XML webservice的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段. 上篇文章介绍了些webservice的基本特性和我们例子的结构,这篇文章我们将开始具体的代码编写工作.

金蝶EAS_V8.1_WebService开发指南

Webservice开发指南

版权声明 本书著作权属于金蝶软件(中国)有限公司所有,在未经本公司许可的情况下,任何单位或个人不得以任何方式对本书的部分或全部内容擅自进行增删,改编,节录,翻译,翻印,改写。 金蝶软件(中国)有限公司 2015年8月

BOSWebService 1.1.BOSWebService原理 (4) 1.2.发布WebService的约束 (5) 1.3.BOSWebService发布 (5) 1.3.1.发布流程 (5) 1.3.2.发布WebService (5) 1.3.3.编辑WebService配置文件 (6) 1.4.BOSWebService部署 (7) 1.4.1.建立web工程................................... 错误!未定义书签。 1.4.2.部署发布文件 (7) 1.4.3.测试是否正确 (8) 1.4.4.Web工程目录及文件截图 (8) 1.5.客户端代码 (9) 1.5.1.获取wsdl服务描述文件 (9) 1.5.2.下载工具 (10) 1.5.3.建立一个新工程 (10) 1.5.4.使用java客户端 (13) 1.5.5.importVoucher(凭证引入 (14) 1.6.BOS webservice 安全性 (15) 1.6.1.BOS webservice 安全性概述 (15) 1.6.2.不启用安全性 (15) 1.6.3.启用安全性 (15) 1.6.4.如何安全性启用 (16) 1.7.EASLogin 登陆webservice 说明 (16) 1.7.1.EASLogin 接口说明 (16) 1.7.2.EASLogin 异常说明 (17) 1.7.3.EASLogin 和前面版本的差别 (18) 1.8.webservice 异常查看 (18) 2.WebService 客户端开发指南 (19) 2.1.前提条件 (19) 2.2.获取WSDL文件 (19) 2.3.生成客户端 (20) 2.3.1.生成Java客户端 (20) 2.3.2.建立一个新工程 (20) 2.3.3.将获取到的WSDL文件拷贝到工程的根目录下: (21) 2.3.4.生成客户端 (21) 2.4.使用java客户端 (25) 2.5.生成C# 客户端 (25) 2.5.1.使用命令行 (25) 2.5.2.运行命令生成客户端 (26) 2.5.3.使用客户端代码 (27) 3.webservice FAQ (29) 3.1.在EAS 上如何发布一个webservice ? (29) 3.2.如何调用一个 webservice? (29)

NET调用WebService服务的方法详解!

本文实例讲述了https://www.wendangku.net/doc/6b4740012.html,调用WebService服务的方法。分享给大家供大家参考,具体如下: 一、WebService:WebService是以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元。 (1)应用程序逻辑单元:web服务包括一些应用程序逻辑单元或者代码。这些代码可以完成运算任务,可以完成数据库查询,可以完成计算机程序能够完成的任何工作。 (2)可由程序访问:当前大多是web站点都是通过浏览器由人工访问的,web服务可以由计算机程序来访问。 (3)标准的we协议:Web服务的所有协议都是基于一组标准的Web协议,如HTTP、XML、SOAP、WSDl、UDDI等 (4)平台独立性:web服务可以在任何平台上实现。因为标准协议不是由单个供应商专用的,它由大多数主要供应商支持。 SOAP(Simple Object Access Protocol,简单对象访问协议)协议:是用于交换XML编码信息的轻量级协议,SOAP协议是HTTP和XML协议的组合。 WSDL(Web Service Description Language,Web服务描述语言)是用XML文档来描述Web 服务的标准,是Web服务的接口定义语言。 二、创建https://www.wendangku.net/doc/6b4740012.html, WEB服务 建立Web服务就是把一些信息或逻辑对其他计算机和客户公开,进一步说,就是从支持SOAP通信的类中建立一个或多个方法。 创建Web服务的步骤:(VS2008) 首先,新建一个网站。选择文件-------->新建--------->网站,打开“新建网站”对话框,选择“https://www.wendangku.net/doc/6b4740012.html, web服务”模板。确定后,创建成功。 创建好后,会生成Service.asmx,其代码隐藏文件Servece.cs位于App_Code文件中。Web服务文件都使用扩展名.asmx。 发现在VS2010中,创建web服务是先新建一个网站,在选择添加新项,然后选择web 服务。 三、使用https://www.wendangku.net/doc/6b4740012.html, Web服务 (1)添加Web引用 1、新建网站,右键单击网站根目录,选择“添加Web引用”项。 2、在“添加Web引用”对话框中,在URl列表框中选择或者填入Web服务的URL。(.asmx 文件路径)然后在“添加Web引用”文本框中填入希望在应用程序中使用的添加Web引用名。

webservice接口开发

Microsoft .NET体系结构中非常强调Web Service,构建Web Service接口对.NET Framework开发工具有很大的吸引力,因此很多讲建立Web Service机制的文章都是使用.NET Framework开发工具的。 在这篇文章中我们将谈论下面几个方面的问题 1、客户端怎样和Web Service通信的 2、使用已存在的Web Service创建代理对象 3、创建客户端。这包括: Web 浏览器客户端 Windows应用程序客户端 WAP客户端 最好的学习方法是建立一个基于真实世界的实例。我们将使用一个已存在的Web Service,这个Web Service从纳斯达克获得股票价格,客户端有一个简单的接口,该接口的外观和感觉集中了建立接口的多数语句。 客户端描述 三种客户端都接受客户输入的同一股票代码,如果请求成功,将显示公司名和股票价格,如果代码不可用,将显示一个错误信息。客户端都设置有"Get Quote" 和"Reset"按钮以初始化用户的请求。 开发中的注意事项 我使用visual https://www.wendangku.net/doc/6b4740012.html,作为我的集成开发环境,beta版没有结合.NET Mobile Web,因此,我们需要使用文本编辑器创建wap客户端,下一个版本的visual https://www.wendangku.net/doc/6b4740012.html, 将整合入.NET Mobile Web 。 客户端怎样与Web Service通讯 我们先复习一下Web Service的功能,在我得上一篇文章中曾展示一幅图(如图一),a点的用户将通过Internet执行远程调用调用b点web 服务器上的东西,这次通讯由SOAP和HTTP完成。

Java RPC 原生实现之WebService详解

Java RPC 原生实现之WebService 一WebService释义 WebService是一种跨语言和跨操作系统的系统间交互标准。 WebService采用SOAP协议封装数据、HTTP协议传输数据、WSDL 描述服务发布的XML格式。 二Java实现 JavaSE6内置支持WebService,可以直接用来实现远程调用,服务端通过@WebService来标记对外暴露的服务实现类,通过调用Endpoint.publish发布到指定的服务地址上。话不多说,直接上代码更直观。

服务接口: 注意:接口上一定要加@WebService注释,否则会报如下异常,端点接口没有Web服务注释。 服务实现类(document风格): 发布服务有两种SOAPBinding风格,SOAPBinding.style.DOCUMENT 和SOAPBinding.style.RPC,默认的是DOCUMENT。我们先以默认的风格来实现。

@WebService注解属性释义: endpointInterface:服务接口, 指定做SEI(Service EndPoint Interface)服务端点接口。 name:指定XML Web Service的名称。默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。缺省值为Java 类或接口的非限定名称。 serviceName:对外发布的服务名,指定Web Service 的服务名称:wsdl:service。缺省值为Java 类的简单名称+ Service。(字符串)。 targetNamespace:指定名称空间,默认使用接口实现类的包名反缀。 portName:wsdl:portName。缺省值为https://www.wendangku.net/doc/6b4740012.html,+Port。

webservice详解

WebService详解 文章分类:Java编程 什么是Web Service? Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL (Web Services Description Language)等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。 Web Service是构建互联网分布式系统的基本部件。Web Services 正成为企业应用集成(Enterprise Application Integration)的有效平台。你可以使用互联网中提供的Web Service构建应用程序,而不必考虑这些Web Service是怎样运行的。 Web Service 三个基本技术 Web Service通过标准通信协议,在互联网上发布有用的程序模块(以服务的方式),目前大部分是用SOAP来作通信协议。 Web Service提供一份详细的接口说明书,来帮助用户构建应用程序,这个接口说明书叫作WSDL (Web Service Description Language)。 通常已发布的Web Service要注册到管理服务器,这样便于使用者查询和使用。这个是通过UDDI (Universal Discovery Description and Integration)来完成的。 为什么要用Web Service? Web Servcie最主要的优点是,使用不同程序和在不同系统平台上开发出来的程序,都可以相互通信。现在很多人在问:“不是CORBA和DCE也有那些优点吗?跟它们有什么不同呢?”。第一个不同点是,SOAP作为Web Service的基本通信协议,比它们简单地多,所以投入和使用的代价也是小的。现在不仅有很多大公司发布的Web Service,也有个人发布的。另一个不同点是,Web Service使用标准的互联网协议-XML、HTTP和TCP/IP。很多公司已经从实践当中对这些协议积累了丰富的经验,所以相比CORBA 和DCE要交的学费要少地多。 如果把现有的应用程序以Web Service部件形式发布,可以帮助其他的公司(人)构件功能强大的应用程序。举个例子,你要开发一个采购系统,可以自动地获得供应商的报价,而且可以实时追踪送货过程。如果供应商已经发布了报价和送货这两个Web Service,那么你就可以直接使用它们,而不必自己开发这些功能了。 在未来,会出现更有趣的Web Service(现在做不到的),来帮助我们构建应用程序。 SOAP SOAP是Web Service的基本通信协议。因为SOAP与DCOM和CORBA在概念上有相同之处,所以很多人在问:“SOAP是怎样激活对象的?”或“SOAP在使用什么命名服务(Naming Service)?”。或许在执行SOAP的过程当中会用到这些,但这些并不在SOAP规范要考虑的范畴之内。SOAP只是定义SOAP 消息的XML格式(XML Format),如果你用一对SOAP标记(SOAP Elements)把XML文档括起来,那么这个就是一个SOAP消息,这不是很简单吗? SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Call)。这些可选的规范是为了构建RPC-style的应用程序(客户端SOAP消息包含函数名和在函数中用到的参数,而服务器端SOAP消息包含执行函数之后的结果)。大多数SOAP解决方案都支持RPC-style应用程序,因为很多程序员已对DCOM或CORBA熟悉。SOAP还支持Document-style应用程序(SOAP 消息只包含XML文本信息)。Document-style应用程序有很好的灵活性,所以很多用RPC很难构建的Web

WebService 之 WSDL文件 讲解

WebService 之 WSDL文件讲解 恩,我想说的是,是不是经常有人在开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户给你一个WSDL文件,说按照上面的进行适配,嘿嘿,这个时候,要是你以前没有开发过,肯定会傻眼,那如果你想学习的话,就认真的看下面的讲解咯: 一、WSDL概述 WebServices Description Language (WSDL Web服务语言)是一个用于精确描述Web Service 的文档格式。 WSDL非常适合于用作代码生成器,它能够读取WSDL文档,并且可以为访问Web服务生成一个程序化的接口,大多数软件供应商和主要的标准机构(包括 W3C、WS-I和OASIS)都支持WSDL。例如:JAX-RPC provider(例如:BEA Weblogic)通过API用WSDL生成相应的占位程序;IBM WebSphere、https://www.wendangku.net/doc/6b4740012.html,以及Apache Axis都有自己的工具生成相关的代码。下图是一个例子: 上面的例子JAX-RPC通过读取WSDL文档,创建JAX-RPC RMI接口(endpoint接口)和实现此接口的网络占位程序(stub)。客户端程序通过RMI接口,Stub和Web Service服务端交换SAOP消息。 二、WSDL基本结构 WSDL文档是一个遵循WSDL XML模式的XML文档(文档实例);类似于:SOAP文档是一个遵循SOAP XML模式的XML文档(文档实例); 一个WSDL文档的根元素是definitions元素,WSDL文档包含7个重要的元素:types, import, message, portType, operations, binding和service元素。 三、WSDL声明 3.1 XML声明

webservice数据传输系统设计说明书

X X X学院毕业 毕业设计 . 题目: _______ Web Service数据传输 系别:_____________ ______________ 专业:______________ ___________班级:_______________________ __姓名:___________________ ________指导老师:______________________ _____________

数据传输项目需求分析 1 系统概述 (2) 系统简介 (2) 系统功能简介 (2) 系统用户角色 (2) 2 系统假设 (3) 3 串口通信技术 (3) 串口通信的定义 (3) 串口通信与项目之间的联系 (3) 4 服务器与服务器之间的数据传输 (3) Web Service技术和数据库复制技术之间的优缺点 (3) Web Service技术和数据库复制技术之间的对比 (4) Web Service 技术和数据库复制技术的选择 (4) 5 分析和总结 (4) 6 文档历史 (5) 1 系统概述 系统简介 该系统主要是为了实现太阳神有限公司的数据交换传递。 系统功能简介 异构平台间的互通功能;数据备份功能。 系统用户角色 系统管理员:添加、删除普通管理员 普通管理员:可以查看数据库的数据;整理数据集合

2 系统假设 1)假定各公司设备完整,该系统开发时间和经费充足。 2)公司无其他新的功能要求; 3 串口通信技术 串口通信的定义 串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。现在比较普遍的串口通信是两个基于RS-232的串口之间的通信。 串口通信与项目之间的联系 串口通信是串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现较远距离通信。所以非常适合该项目单片机把数据传输到电脑上,也可以通过电脑把要执行的指令传输到单片机上。 4 Web Service技术和数据库复制技术 Web Service技术和数据库复制技术之间的优缺点 Web Service技术和数据库复制技术之间的对比

webservice 简介

Webservice简介 什么是webservice Webservice简单来说就是为应用程序提供一个网络接口,其他应用程序(可以是桌面应用程序或网络应用程序),通过这个接口来调用服务商提供的程序(一般是由客户端发送数据,服务器端接收数据并作出相应处理以后返回给客户),来达到数据交互和分布式处理的效果,并且它通过wsdl、soap等标准实现交互,是一种与语言和平台无关的交互技术。 相关要数 WSDL:Web服务描述语言. 是一个用来描述Web服务和说明如何与Web服务通信的XML语言。为用户提供详细的接口说明书。 怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。 Wsdl是提供了一种对函数、参数和返回值描述标准的xml语言。通过统一的规则,不论你的程序是用什么语言开发的,只要函数名和功能一样,都能得到相同的wsdl定义。正是wsdl这样一个标准的存在,实现了webservice的跨平台和跨语言,因为不论你用的是什么语言,xml总是一样的。同时wsdl简化了开发流程。我们只需要从服务提供商那里获得相应接口的wsdl文件,那么我们就可以根据该文件,通过相关的软件自动生成客户端不同语言的代码,我们所做的就是调用生成的函数接口而已,大大简化了编码流程。 Soap(xml+http)简单对象访问协议,表示信息交换的协议. Webservice的通信协议,基于xml和http传输 XML:描述数据的标准方法. Webservice通过xml语言进行数据交互,客户端返回给用户的是一个xml文档,客户端会根据生成代码自己处理该xml文档, 根据wsdl文件自动生成服务器端和客户端 现在的软件大多书提供了对wsdl文件的处理。即根据wsdl可以生成特定语言的服务器端和客户端代码。我们只需要做简答的代码调用就可以使用该程序了,简化了程序的开发。Axis的java2wsdl 把java转换成wsdl Wsdl2java 把wsdl转换成java Gsoap的wsdl2 可以把wsdl转换成c、c++语言 常用的webservice开发软件 Axis 帕奇可扩展交互系统

WebService实例解析

最近闲来无事,想起blog很久没写新文章了,干脆来写个专题好了,想来想去,干脆写个有关webservice的示例文章吧. 首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice传递的数据只能是序列化的数据,典型的就是xml数据,这里我们也只讨论xml数据的传输. 有了一些对xml webservice的初步了解后,我们将切入正题,即是用一个具体的webservice事例的形式来讲解具体的webservice用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003为编译环境,C#为语言,SqlServcer2000为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表webservice的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite的服务.两个资源站,就有两个服务,我们称为SiteAService和SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关xml webservice的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段.

asp_net mvc4 web api 的最新讲解极其详细介绍

不管是因为什么原因,结果是在新出的MVC中,增加了WebAPI,用于提供REST风格的WebService,个人比较喜欢REST风格的WebService,感觉比SOAP要轻量级一些,而且对客户端的要求也更少,更符合网络数据传输的一般模式,客户端完全摆脱了代理和管道来直接和WebService进行交互,具体的区别可以参见Web 服务编程,REST 与SOAP (一)环境准备 本机的环境是XP+VS2010,需要安装VS2010 SP1升级包,MVC4升级包,Vs2010安装SP1后会影响SQLServer2008的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的MVC WebAPI 项目 (二)概览 新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models,Views,Controllers等文件夹和Global.asax文件 Views对于WebAPI来说没有太大的用途,Models中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据进行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。和普通的MVC一样,Global.asax用于配置路由规则 (三)Models 和WCF中的数据契约形成鲜明对比的是,MVC WebAPI中的Model就是简单的POCO,没有任何别的东西,如,你可以创建如下的Model public class TestUseMode { public string ModeKey{get;set;} public string ModeValue { get; set; } } 注意:Model必须提供public的属性,用于json或xml反序列化时的赋值 (四)Controllers MVC WebAPI中的Controllers和普通MVC的Controllers类似,不过不再继承于Controller,而改为继承API的ApiController,一个Controller可以包含多个Action,这些Action响应请求的方法与Global 中配置的路由规则有关,在后面结束Global时统一说明 (五)Global 默认情况下,模板自带了两个路由规则,分别对应于WebAPI和普通MVC的Web请求,默认的WebAPI 路由规则如下

webservice技术在数据接口方面的应用

Webservice技术在数据接口方面的应用一,项目的需求和背景: 1.具备客户资料管理系统的省公司,原有客户资料管理系统能够提供满足客户及业务查询需求的系统接口。 2.根据本规范中关于客户资料查询接口的要求,改造本省客户资料管理系统,提供符合规范要求的WebService接口,供集团故障单管理系统访问。 3.各省公司需使本省客户资料管理系统(或数据库服务器)提供通过DCN的访问方式。二,为何使用webservice技术: 1.全国集中的信息化建设项目具备的一个最主要的特点是各个省市地区技术力量,数据库环境不尽相同,在这种分散的异构数据环境下实施数据集成项目的开发,如果采用数据库直联dblink等方式取得数据困难相对较大。 2.对于业务密集型的项目和集团方提供的相对明确和稳定的数据需求,由于webservice技术有很好的封装性,集成性,数据传输透明性,框架稳定性,而且技术发展也比较成熟,适合使用webservice技术来规避在实施项目过程中由于各个省业务模型的异构造成的项目间复杂性和依赖性。 综上,并根据项目的需求结合我们黑龙江省的实际情况适合采用webservice技术。 三,入门背景知识: 一.Web Service简介 1.定义 由两部分组成 ·SOAP--Web Service之间的基本通信协议。 ·WSDL--Web Service描述语言,它定义了Web Service做什么,怎么做和查询的信息。 2.简单的Web Service实现 包含四个基本步骤 ·创建Web Service的商业逻辑(通常是一些Java类)

·将这些Java类部署到一个SOAP服务器上 ·生成客户访问代码 ·部署客户应用 注意:WSDL等文件的生成通常是利用厂商提供的工具来完成 3.WSDL解析 WSDL描述语言一般包含三部分 ·What部分--包括了type、message和portType元素 Type:定义了Web Service使用的数据结构(使用XML Schema定义) Message:一个Message是SOAP的基本通信元素。每个Message可以有一个或多个Part,每个Part代表一个参数。 PortType:消息汇总为不同的操作并归入到一个被称为portType的实体中。一个portType代表一个接口(Web Service支持的操作集合),每个Web Service可以有多个接口,它们都使用portType表示。每个操作又包含了input和output部分。 ·How部分--包含binding元素 binding元素将portType绑定到特定的通信协议上(如HTTP上的SOAP协议) ·Where部分--由service元素组成 它将portType,binding以及Web Service实际的位置(URI)放在一起描述 4.客户端 通常Web Service可以有三种类型的客户 ·商业伙伴(Business Partner)--包括分发商,零售商以及大型消费者) 此类客户通过SOAP、WSDL、ebXML、UDDI等XML技术与Web Service连接 ·瘦客户--包括Web浏览器、PDA以及无线设备 该类客户通常经由轻量协议(如HTTP)与Web Service连接 ·肥客户--包括Applet、各类应用以及现存系统 通常使用重量级协议(如IIOP)连接Web Service 二,JDOM 简介 JDOM是一个开源项目,它基于树型结构,利用纯JA V A的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM 直接为JA V A编程服务。它利用更为强有力的JA V A语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。在使用设计上尽可能地隐藏原来使用XML过程中的复杂性。利用JDOM处理XML文档将是一件轻松、简单的事。 DOM的缺点主要是来自于由于Dom是一个接口定义语言(IDL),它的任务是在不同语言实现中的一个最低的通用标准,并不是为JA V A特别设计的。这标志着JDOM成为了JA V A平台组成的一部分。 四,接口的实现: Webservice开发环境的配置和准备:

相关文档