java和调用webservice的各种方法总结

上传人:nu****n 文档编号:157441380 上传时间:2022-09-29 格式:DOCX 页数:24 大小:38.23KB
返回 下载 相关 举报
java和调用webservice的各种方法总结_第1页
第1页 / 共24页
java和调用webservice的各种方法总结_第2页
第2页 / 共24页
java和调用webservice的各种方法总结_第3页
第3页 / 共24页
点击查看更多>>
资源描述
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用方法。 一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务 1.首先建立一个Web services EndPoint: package Hello; import javax.jws.WebService; import javax.jws.WebMethod; import javax.xml.ws.Endpoint; WebService public class Hello WebMethod public String hello(String name) return Hello, + name + n; public static void main(String args) / create and publish an endpoint Hello hello = new Hello(); Endpoint endpoint = Endpoint.publish(http:/localhost:8080/hello, hello); 2.使用 apt 编译 Hello.java(例:apt -d 存放编译后的文件目录 Hello.java ) ,会生成 jaws目录 3.使用java Hello.Hello运行,然后将浏览器指向http:/localhost:8080/hello?wsdl就会出现下列显示 4.使用wsimport 生成客户端 使用如下:wsimport -p . -keep http:/localhost:8080/hello?wsdl 这时,会在当前目录中生成如下文件: 5.客户端程序: 1class HelloClient 2public static void main(String args) 3 HelloService service = new HelloService(); 4 Hello helloProxy = service.getHelloPort(); 5 String hello = helloProxy.hello(你好); 6 System.out.println(hello); 7 89 以上方法还稍显繁琐,还有更加简单的方法二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的 利用xfire开发WebService,可以有三种方法: 1一种是从javabean 中生成; 2 一种是从wsdl文件中生成; 3 还有一种是自己建立webservice 步骤如下: 用myeclipse建立webservice工程,目录结构如下: 首先建立webservice接口, 代码如下: 1package com.myeclipse.wsExample;2/Generated by MyEclipse34public interface IHelloWorldService 5 6 public String example(String message);7 8 接着实现这个借口: 1package com.myeclipse.wsExample;2/Generated by MyEclipse34public class HelloWorldServiceImpl implements IHelloWorldService 5 6 public String example(String message) 7 return message;8 9 10 修改service.xml 文件,加入以下代码: 12 HelloWorldService3 4 com.myeclipse.wsExample.IHelloWorldService5 6 7 com.myeclipse.wsExample.HelloWorldServiceImpl8 9 wrapped10 literal11 application12 把整个项目部署到tomcat服务器中 ,打开浏览器,输入http:/localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下: 然后再展开HelloWorldService后面的wsdl可以看到:客户端实现如下: 1package com.myeclipse.wsExample.client;23import .MalformedURLException;4import .URL;56import org.codehaus.xfire.XFireFactory;7import org.codehaus.xfire.client.Client;8import org.codehaus.xfire.client.XFireProxyFactory;9import org.codehaus.xfire.service.Service;10import org.codehaus.xfire.service.binding.ObjectServiceFactory;1112import com.myeclipse.wsExample.IHelloWorldService;1314public class HelloWorldClient 15public static void main(String args) throws MalformedURLException, Exception 16/ TODO Auto-generated method stub17Service s=new ObjectServiceFactory().create(IHelloWorldService.class);18XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire();19String url=http:/localhost:8989/HelloWorld/services/HelloWorldService;2021 try22 23 24 IHelloWorldService hs=(IHelloWorldService) xf.create(s,url);25 String st=hs.example(zhangjin);26 System.out.print(st);27 28 catch(Exception e)29 30 e.printStackTrace();31 32 333435 这里再说点题外话,有时候我们知道一个wsdl地址,比如想用java客户端引用.net 做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下: 1public static void main(String args) throws MalformedURLException, Exception 2 / TODO Auto-generated method stub3 Service s=new ObjectServiceFactory().create(IHelloWorldService.class);4 XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire();5 6 7/远程调用.net开发的webservice8Client c=new Client(new URL(9 Object o=c.invoke(qqCheckOnline, new String531086641,591284436);10 11/调用.net本机开发的webservice12Client c1=new Client(new URL(http:/localhost/zj/Service.asmx?wsdl);13Object o1=c1.invoke(HelloWorld,new String);14 15 三、使用axis1.4调用webservice方法 前提条件:下载axis1.4包和tomcat服务器 ,并将axis文件夹复制到tomcat服务器的webapp文件夹中 这里我就说一下最简单的方法: 首先建立一个任意的java类(例如:HelloWorld.java),复制到axis文件夹下,将其扩展名改为jws,然后重新启动tomcat,在浏览器中输入http:/localhost:8989/axis/HelloWorld.jws?wsdl,就会得到一个wsdl文件,其客户端调用方法如下: 1import javax.xml.rpc.Service;2import javax.xml.rpc.ServiceException;3import javax.xml.rpc.ServiceFactory;45import .MalformedURLException;6import .URL;7import java.rmi.RemoteException;89import javax.xml.namespace.QName;1011public class TestHelloWorld 121314 public static void main(String args) throws MalformedURLException, ServiceException, RemoteException 15 / TODO Auto-generated method stub16 17 String wsdlUrl =http:/localhost:8989/axis/HelloWorld.jws?wsdl;18 String nameSpaceUri =http:/localhost:8989/axis/HelloWorld.jws;19 String serviceName = HelloWorldService;20 String portName = HelloWorld;21 22 ServiceFactory serviceFactory = ServiceFactory.newInstance();23 Service afService =serviceFactory.createService(new URL(wsdlUrl),new QName(nameSpaceUri, serviceName);24 HelloWorldInterface proxy = (HelloWorldInterface)afService.getPort(new QName(nameSpaceUri, portName),HelloWorldInterface.class);25 System.out.println(return value is +proxy.getName(john) ) ;26 27 282930四、使用axis2开发webservice(这里首先感谢李宁老师) 使用axis2 需要先下载 axis2-1.4.1-bin.zip axis2-1.4.1-war.ziphttp:/ws.apache.org/axis2/ 同理,也需要将axis2复制到webapp目录中在axis2中部署webservice有两种方法, 第一种是pojo方式,这种方式比较简单,但是有一些限制,例如部署的类不能加上包名 第二种方式是利用xml发布webservice,这种方法比较灵活,不需要限制类的声明 下面分别说明使用方法: 1.pojo方式:在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。先实现一个pojo类: 1public class HelloWorld2 public String getName(String name)3 4 return 你好 + name;5 6 public int add(int a,int b)7 8 return a+b;9 1011 由于这两个方法都是public类型,所以都会发布成webservice。编译HelloWorld类后,将HelloWorld.class文件放到%tomcat%webappsaxis2WEB-INFpojo目录中(如果没有pojo目录,则建立该目录),然后打开浏览器进行测试:输入一下url: http:/localhost:8080/axis2/services/listServices会列出所有webservice这是其中的两个webservice列表,接着,在客户端进行测试:首先可以写一个封装类,减少编码,代码如下: 1package MZ.GetWebService;2import javax.xml.namespace.QName;34import org.apache.axis2.AxisFault;5import org.apache.axis2.addressing.EndpointReference;6import org.apache.axis2.client.Options;7import org.apache.axis2.rpc.client.RPCServiceClient;8910public class GetWSByAxis2 11 private static String EndPointUrl;12 private static String QUrl=http:/ws.apache.org/axis2;13 private QName opAddEntry; 14 public String WSUrl;15 public RPCServiceClient setOption() throws AxisFault16 17 RPCServiceClient serviceClient = new RPCServiceClient();18 Options options = serviceClient.getOptions();19 EndpointReference targetEPR = new EndpointReference(WSUrl);20 options.setTo(targetEPR);21 return serviceClient;22 23 24 public QName getQname(String Option)25 26 return new QName (QUrl,Option);27 28 /返回String29 public String getStr(String Option) throws AxisFault30 31 RPCServiceClient serviceClient =this.setOption(); 32 33 opAddEntry =this.getQname(Option);34 35 String str = (String) serviceClient.invokeBlocking(opAddEntry, 36 new Object, new ClassString.class )0;37 return str;38 39/ 返回一维String数组40 public String getArray(String Option) throws AxisFault41 42 RPCServiceClient serviceClient =this.setOption(); 43 44 opAddEntry =this.getQname(Option);45 46 String strArray = (String) serviceClient.invokeBlocking(opAddEntry, 47 new Object, new ClassString.class )0;48 return strArray;49 50 /从WebService中返回一个对象的实例51 public Object getObject(String Option,Object o) throws AxisFault52 53 RPCServiceClient serviceClient =this.setOption(); 54 QName qname=this.getQname(Option);55 Object object = serviceClient.invokeBlocking(qname, new Object,new Classo.getClass()0;56 return object;57 58 59/ 读者可以自己封装数据类型,如int,byte,float等数据类型6061客户端调用方法:MZ.GetWebService.GetWSByAxis2 ws=new MZ.GetWebService.GetWSByAxis2();ws.WSUrl=http:/localhost:8989/axis2/services/HelloWorld;HelloWorld hello= (HelloWorld)ws.getObject(getName, HelloWorld.class); System.out.println(hello.getName(zhangjin); 2.使用service.xml发布webservice,这种方式和直接放在pojo目录中的POJO类不同。要想将MyService类发布成Web Service,需要一个services.xml文件,这个文件需要放在META-INF目录中,该文件的内容如下: HelloWorld webservice service.HelloWorld 其中元素用于发布Web Service,一个元素只能发布一个WebService类,name属性表示WebService名,如下面的URL可以获得这个WebService的WSDL内容:http:/localhost:8080/axis2/services/myService?wsdl除此之外,还有直接可以在其中制定webservice操作方法:可以这样些service.xml文件12 3 HelloWorld service4 5 6 service.HelloWorld 7 8 9 10 11 12 14 1516如果要发布多个webservice,可以在文件两段加上.发布*WebService开发实用指南 WebService平台是一套标准,它定义了应用程序如何在Web上实现交互性操作。你可以用你喜欢的任何语言,在任何平台上编写WebService,只要我们可以通过WebService标准对这些服务进行查询和访问即可。 本文选用VB.NET平台,向你讲述WebService开发的方法与技巧。 一、WebService平台的组成技术 1.什么是WebService 从表面上看,WebService是一个应用程序,一个能够通过Web进行调用的API(ApplicationProgrammingInterface,应用编程接口)。即是说,你能够用编程的方法,通过Web调用,来实现某个功能的应用程序。 从深层次上看,WebService是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。 WebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行交互操作。它可以使用标准的Internet协议,将功能体现在Internet和企业内部网上。 2.WebService平台的组成技术 通常情况下,WebService由以下3个主要技术部分组成: (1)XML和XSD XML(ExtensibleMarkupLanguage,可扩展的标记语言)是WebService平台中表示数据的基本格式。XML解决了数据表示的问题,但它没有定义标准的数据类型,更没有定义怎样去扩展数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现交互操作都是很重要的。W3C(万维网联盟)制定的XMLSchema(XSD)即是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就是用XSD作为其数据类型系统的。当你用某种编程语言(如VB.NET或C#)来编写一个WebService应用程序时,为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型。 (2)SOAP WebService应用程序编写好以后,我们需要去调用它,SOAP(SimpleObjectAccessProtocol,简单对象访问协议)提供了标准的RPC(远程过程调用)方法来调用WebService。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP基于XML和XSD。 (3)WSDL WSDL(WebServiceDescriptionLanguage,Web服务说明语言)是一个基于XML的语言,用于描述WebService及其函数、参数和返回值。因为其基于XML,所以WSDL既是机器可阅读的,又是开发者可阅读的。一些最新的开发工具既能根据你的WebService生成WSDL文档,又能导入WSDL文档,生成调用相应的WebService代码。 3.WebService工作流程 WebService的工作流程如图1所示。 在使用WebService时,包括3个阶段的通信,在图1中,列出了3个阶段的通信流程。第1阶段的通信被称为发现阶段(Discover),其主要作用是确定在服务器上有哪些服务。经过发现阶段我们一般可以确定服务器一共提供了哪些服务。在使用这些服务之前我们还必须知道这些服务支持什么样的界面。所以WebService第2阶段的通信就是发送请求获得WebService描述语言WSDL。 第3阶段的通信主要是向WebService服务器发送信息服务请求,并等待服务器的应答。 二、.NET中关于WebService的技术要素 利用.NET中专为WebService开发的类接口,我们可以轻松地创建一个WebService程序。下面介绍一些主要的技术要素。 1.WebService处理指令 WebService处理指令为ASP.NET环境提供了必要的信息,如实现XMLWebServices功能的类。以下是.asmx文件中WebService处理指令的示例: %WebServiceLanguage=vbCodebehind=Service1.asmx.vbClass=WebService1.Service1% 其中,Language属性指示开发XMLWebServices所使用的编程语言。可以使用任何与.NET兼容的语言(如VB.NET或C#)来创建XMLWebServices。与.asmx页关联的支持代码文件由Codebehind属性来指示。Class属性指示支持代码文件中用来实现XMLWebServices功能的类。 2007-4-26 17:50 回复 58.33.96.*注意:要在.NET的“解决方案资源管理器”中查看.asmx文件的内容,请用右键单击.asmx文件,然后单击“打开方式”命令。在“打开方式”对话框中,选择“源代码文本编辑器”选项,然后单击“打开”按钮即可。 2.System.Web.Services.WebService类 System.Web.Services.WebService类定义了XMLWebServices的可选基类,并提供了直接访问常见ASP.NET对象(如应用程序和会话状态的对象)的权限。默认情况下,使用VisualStudio.NET以托管代码的形式创建的XMLWebServices继承此类。XMLWebServices可继承此类以获得访问ASP.NET固有对象(如Request和Session)的权限。 如果XMLWebServices没有继承此类,也可System.Web.HttpContext.Current访问ASP.NET固有对象。实现XMLWebServices的类必须是公共的,且必须有一个公共的默认构造函数(不带参数的构造函数)。这样,ASP.NET就能够创建XMLWebServices类的实例以处理传入的XMLWebServices请求。 3.WebService属性 每个XMLWebServices都需要唯一的命名空间,它可使客户端应用程序区分出可能使用相同方法名称的XMLWebServices。在VisualStudio.NET中创建的XMLWebServices的默认命名空间是“http:/tempuri.org”。尽管命名空间类似于典型的URL(统一资源标识符),但在Web浏览器中是不能查看的,它只是一个唯一标识符。WebService属性主要包括以下几种属性: (1)Description属性 此属性的值包含描述性消息,此消息将在XMLWebServices的说明文件(例如服务说明和服务帮助页)生成后显示给XMLWebServices的潜在用户。 (2)Name属性 此属性的值包含XMLWebServices的名称。默认情况下,该值是实现XMLWebServices的类的名称。Name属性标识XMLWebServices的XML限定名称的本地部分。Name属性也用于在服务帮助页上显示XMLWebServices的名称。 (3)Namespace属性 此属性的值包含XMLWebServices的默认命名空间。XML命名空间提供了在XML文档中创建名称的方法,该名称可由URL标识。使用XML命名空间,可以唯一标识XML文档中的元素或属性。因而,在XMLWebServices的服务说明中,Namespace被用作与XMLWebServices直接相关的XML元素的默认命名空间。如果不指定命名空间,就使用默认命名空间“http:/tempuri.org”。 以下示例代码说明了WebService属性的用法: WebService(Namespace:=http:/MyServer/MyWebServices/,_ Description:=此处可以放一些描述性文字。, Name:=MyFavoritesService)_ PublicClassService1 InheritsSystem.Web.Services.WebService 实现代码 EndClass 4.WebMethod属性 以托管代码创建XMLWebServices时,通过在Public方法声明之前放置WebMethod属性可以指定在XMLWebServices中可用的方法。Private方法不能充当XMLWebServices的入口点,尽管它们可以采用相同的类,并且XMLWebServices代码可以调用它们。WebMethod属性必须应用到可用作XMLWebServices一部分的每种公共方法中。 WebMethod属性包含配置XMLWebServices行为的几个属性。例如,可以使用此属性在相关服务帮助页提供一个简短说明。WebMethod属性提供以下属性: (1)BufferResponse属性 当此属性设置为True(默认设置)时,ASP.NET将响应向下发送到客户端之前先缓存整个响应。缓存是一种非常有效的方法,可以通过减少辅助进程和Internet信息服务(IIS)进程之间的通信来提高性能。当设置为False时,ASP.NET会将响应缓存在16KB的区块中。通常,只有在不想一次将响应的全部内容都缓存在内存中时,才将此属性设置为False。例如,正在写一个多项流出数据库的集合。除非另行指定,否则默认值为True。 2007-4-26 17:50 回复 58.33.96.*3楼(2)CacheDuration属性 此属性的值指定ASP.NET缓存每个唯一参数设置结果所需的秒数。除非另行指定,否则默认值为0,此设置将禁用结果缓存。 (3)Description属性 此属性的值提供了对XMLWebServices方法的说明,显示于服务帮助页中。除非另行指定,否则默认值为空字符串。 (4)EnableSession属性 当此属性设置为False(默认设置)时,ASP.NET将无法访问XMLWebServices方法的会话状态。当设置为True时,XMLWebServices可以直接从HttpContext.Current.Session访问会话状态集合;在继承了WebService基类的情况下,也可以使用WebService.Session属性进行访问。 (5)MessageName属性 此属性的值使XMLWebServices能够使用别名来唯一标识重载的方法。除非另行指定,否则默认值为方法名。当为MessageName指定值后,结果SOAP消息会反映出此名称而不是实际的方法名。 (6)TransactionOption属性 此属性的值指定XMLWebServices方法是否可以作为事务的根对象。虽然可以将TransactionOption属性设置为TransactionOption枚举类型的任意值,但是XMLWebServices方法仅有两种可能行为:它不参与事务(Disabled、NotSupported和Supported),或是创建新事务(Required和RequiresNew)。除非另行指定,否则默认值为TransactionOption.Disabled。要使用此属性,需要向System.EnterpriseServices.dll添加一个引用。此命名空间包含的方法和属性,提供了可在COM+服务中找到的分布式事务模型。System.EnterpriseServices.ContextUtil类允许你使用SetAbort或SetComplete方法设置该事务。 以下示例代码说明了WebMethod属性的用法: PublicClassService1 InheritsSystem.Web.Services.WebService WebMethod(BufferResponse:=False,_ CacheDuration:=60,_ Description:=一些描述性的文字, MessageName:=RetrieveData)_ PublicFunctionGetBigChunkOfData()AsDataSet 实现代码 EndFunction EndClass 5.XMLWebServices发现 XMLWebServices发现是对XMLWebServices说明进行定位和询问的过程,是访问XMLWebServices的基本步骤。通过发现进程,XMLWebServices客户端能够在设计阶段了解某个XMLWebServices是否存在,它的功能如何,以及如何正确与它进行交互操作。 然而,实现XMLWebServices的Web站点不需要支持该发现进程,而是由另一个站点负责说明服务(如XMLWebServices目录)。另外,可能没有一个公开的方法可用来查找服务,例如在创建专用服务时。XMLWebServices发现主要包括以下内容: (1)静态发现(.disco) 可以通过发布.disco文件(一个XML文档,包含指向其他发现文档、XSD方案和服务说明的链接)来启用XMLWebServices的程序发现。使用ASP.NET自动创建的XMLWebServices能够提供生成的发现文档。例如,要访问名为Service1.asmx(本地计算机中WebService1项目的一部分)的XMLWebServices发现文档,可使用以下URL:http:/localhost/WebService1/Service1.asmx?DISCO 以下示例显示了发现文档的结构: ?xmlversion=1.0? disco:discoveryxmlns:disco=http:/schemas.xmlsoap.org/disco xmlns:wsdl=http:/schemas.xmlsoap.org/disco/wsdl wsdl:contractRefref=http:/MyWebServer/UserName.asmx?WSDL/ /disco:discovery 注意:发现文档是一个元素容器,通常包含提供XMLWebServices发现信息的资源链接(URL)。如果URL是相对的,则假定它们是相对于发现文档的位置。 (2)动态发现(.vsdisco) 动态发现是ASP.NET通过开发Web服务器上的文件夹层次结构执行迭代搜索以查找可用的XMLWebServices的过程。动态发现(.vsdisco)文件是基于XML的文件,可以包含0或多个节点。每个节点包含一个path属性,path属性包含指向子文件夹(动态发现进程不应搜索的子文件夹)的相对路径。以下是.vsdisco示例文件: ?xmlversion=1.0encoding=utf-8? dynamicDiscoveryxmlns=urn:schemas-dynamicdiscovery:disco.2003-10-17 excludepath=_vti_cnf/ excludepath=_vti_pvt/ excludepath=_vti_log/ excludepath=_vti_script/ excludepath=_vti_txt/ excludepath=WebReferences/ /dynamicDiscovery 当启用了动态发现的Web服务器请求.vsdisco文件时,对于已通过动态发现进程进行定位的每个WebService,都会返回一个包含WebService发现信息的发现文档。 默认情况下,web.config中禁用了动态发现。要控制哪些XMLWebServices客户端可以发现服务,应该在开发Web服务器上只使用动态发现。当向生产Web服务器部署XMLWebServices时,应为那些希望客户端能够发现的XMLWebServices创建并发布一个静态发现文件(.disco)。 三、创建WebService程序的详细步骤 对.NET来讲,WebService其实就是一个服务器的类。这个类的一种方法以一种特殊的方式标记以让.NET可以知道在服务上公布哪些方法。读者可以通过以下简单的程序来进一步了解.NET中关于WebService的内部机制。 1.创建步骤 在VisualStudio.NET中创建一个基于ASP.NETWeb服务的工程。定义工程名为DemoService。 完成这一步后,会创建一个新的Web站点,以及该站点的一个新网页Service1.asmx。该页面表示一个服务,而一个WebService工程可以包含许多个不同的服务。同时生成的还有Global.asax和Web.config两个文件,这两个文件用来配置Web环境。 在“解决方案资源管理器”中右键单击Service1.asmx,选择“查看代码”命令,这时我们可以看到WebService中放置了一个“HelloWorld”的示例方法。如图2所示。 下文中我们将以这个示例为基础,对其进行扩充。 直接运行该工程,运行结果如图3所示。 点击上图中的“HelloWord”链接,会打开另外一个运行方法页面。单击“调用”按钮,从新打开的窗口中我们可以看到从服务器返回的SOAP响应。 ?xmlversion=1.0encoding=utf-8? stringxmlns=http:/tempuri.org/HelloWorld/string 代码说明: 在WebService中,每个.asmx页面后面都有一个类。这个类就是HelloWorld方法所在的,从图2的显示代码: PublicClassService1 InheritsSystem.Web.Services.WebService 我们可以发现,该类继承于System.Web.Services.WebService。此类用于给出用户在InternetExplorer中单击的页面并调用HelloWorld方法。WebMethod属性标记用来表示方法是作用于WebService类的。2.添加更多的方法 现在让我们为DemoService构建一些新的方法用以说明WebService的实际工作。 打开Service1.asmx的代码编辑器,在HelloWorld方法中编写以下代码: WebMethod()PublicFunctionNewTest(ByValnumberAsDouble)AsDouble ReturnMath.Sqrt(number) EndFunction 说明:此方法用以求一个数的平方根。 编译后再次运行该程序。运行结果如图4所示: 单击“NewTest”链接。如图5所示。 在“number”框中填入数字“121”,单击“调用”按钮,SOAP响应信息如下所示: 58.33.96.*?xmlversion=1.0encoding=utf-8? doublexmlns=http:/tempuri.org/11/double 通过上面的演示我们不难发现,构建一个简单的WebService并不复杂。下面我们将通过一个具体的实例来进一步介绍如何构建WebService。 四、实例解析
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!