WebService客户端代码生成方式总结

时间:2019-05-15 09:46:49下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《WebService客户端代码生成方式总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《WebService客户端代码生成方式总结》。

第一篇:WebService客户端代码生成方式总结

一、Webservice可以使用的框架很多。AXIS、CXF、JAX、XFIRE,这些框架都可以根据wsdl文件生成ws的服务器和客户端代码。

二、Ws的调用方式有三种,http post、http get、soap post。本人建议使用http post,他访问远程ws接口的速度比使用soap post要快些。象使用axis框架实现soap post方式来说,简单的接口还好,对于使用了大量代理类及带有soaphead的ws,且还要在本地生成一大堆JAVA类来和服务端对应。特别如下这种情况,axis好像无法实现。Soaphead如下 0039434454

67677 象这种只能根据org.apache.axis.client.Call.addHead(ElementSoapHead)来增加报头。但这个报头没有根元素,无法创建一个这种Element。

下面就如何书写客户端代码详细讲解下。1.通过发送http post请求来调用ws。

SOAPUI是个不错的工具,他可以根据wsdl文件生成测试例子。另外重要的是,它可以生成wsdl对应的请求报文和响应报文。这样我们在调用别人写的ws时,不管多复杂的ws都可以简单的调用。首先按照SOAPUI显示的请求报文格式拼装我们的请求报文,使用java.net.HttpURLConnection对象来发送http post请求。然后使用输出流、输出流获得响应报文,再用Element解析报文得到要取的数据。示例代码如下: JAVA类SoapInvoke: package test;

import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;

public class SoapInvoke {

public static void main(String[] args){

} try {

} soapSpecialConnection();e.printStackTrace();} catch(Exception e){ public static void soapSpecialConnection()throws Exception {

//拼装soap请求报文

StringBuilder sb = new StringBuilder();StringBuilder soapHeader = new StringBuilder();soapHeader.append(“”);soapHeader.append(“”);soapHeader.append(“zhouyun”);soapHeader.append(“123”);soapHeader.append(“”);soapHeader.append(“”);soapHeader.append(“”);soapHeader.append(“”);soapHeader.append(“zhouyun”);soapHeader.append(“”);soapHeader.append(“”);soapHeader.append(“”);soapHeader.append(“”);

//设置soap请求报文的相关属性

String url=“http://localhost:8080/CXFServer/SayHelloService”;URL u = new URL(url);HttpURLConnection conn =(HttpURLConnection)u.openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setUseCaches(false);conn.setDefaultUseCaches(false);conn.setRequestProperty(“Host”, “localhost:8080”);conn.setRequestProperty(“Content-Type”, “text/xml;charset=utf-8”);conn.setRequestProperty(“Content-Length”, String.valueOf(soapHeader.length()));conn.setRequestProperty(“SOAPAction”, “");conn.setRequestMethod(”POST“);//定义输出流

OutputStream output = conn.getOutputStream();if(null!= soapHeader){ byte[] b = soapHeader.toString().getBytes(”utf-8“);//发送soap请求报文

output.write(b, 0, b.length);} output.flush();output.close();//定义输入流,获取soap响应报文

InputStream input = conn.getInputStream();int c =-1;//sb为返回的soap响应报文字符串

while(-1!=(c = input.read())){ sb.append((char)c);} input.close();}

} 2.通过axis来调用ws。

对于使用了复杂代理类的ws,我们在调用时可以使用AXIS、CXF、xfire架包来自动生成ws客户端JAVA代码。下面以axis为例,来展示。服务器端主要JAVA代码 package test;

import javax.jws.WebService;

@WebService public class SayHelloImpl implements SayHelloService {

public wsResult sayHelloMr(String name){

wsResult retObj = new wsResult();

retObj.setResultVal(”Hello,mr “ + name);

return retObj;

}

public wsResult sayHelloMiss(InputClass input){

wsResult retObj = new wsResult();

retObj.setResultVal(”Hello,Miss “ + input.getName());

return retObj;

} } 客户端:

1)新建wsdltojava.bat文件,放到C盘,文件内容如下: set Axis_Lib=E:axis-bin-1_4axis-1_4lib set Java_Cmd=java-Djava.ext.dirs=%Axis_Lib% set Axis_Servlet=http://localhost:8080/CXFServer/SayHelloService?wsdl %Java_Cmd% org.apache.axis.wsdl.WSDL2Java-u %Axis_Servlet% 其中Axis_Lib为本地axis架包的路径;Axis_Servlet为本地ws的URL,这里也可以设置为此ws服务器对应的wsdl文件的路径。

2)在DOS里,执行wsdltojava.bat。在C盘根目录下就会生成JAVA客户端的代码了 3)新建一个java类Invoke,代码如下:

package test;

public class invoke {

} }

SayHelloService stub = svc.getSayHelloImplPort();//调用

//WsResult wsResult = stub.sayHelloMr(”zhouyun“);InputClass inputClass=new InputClass();inputClass.setName(”zhouyun“);WsResult wsResult = stub.sayHelloMiss(inputClass);System.out.println(”结果是:" + wsResult.getResultVal());public static void getResult(){ try { SayHelloImplServiceLocator svc = new } public static void main(String[] args)throws Exception { getResult();SayHelloImplServiceLocator();} catch(Exception e){ } System.out.println(e);Ps: 1.通过命令生成的java客户端代码里SayHelloImplServiceLocator类是调用ws的入口。

2.执行此类,Myelipse控制台会输出Hello,Miss zhouyun,代表调用成功。

3.象JAX、xfire架包生成的客户端代码不能实现代理类输入、输出,只可以实现简单数据类型输入、输出,象String、Map、AaaryList等等。只有axis可以实现代理类的输入、输出。

第二篇:webService基础总结

 WebService是一种跨编程语言和跨操作系统平台的远程调用技术

 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 除了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,由于WebService的跨平台和跨编程语言特点,因此比其他两种技术应用更为广泛,但性能略低。

 WebService使用SOAP协议实现跨编程语言和跨操作系统平台

 WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象访问协议)。

 SOAP协议 = HTTP协议 + XML数据格式

 HTTP协议和XML是被广泛使用的通用技术,各种编程语言对HTTP协议和XML这两种技术都提供了很好的支持,WebService客户端与服务器端使用什么编程语言都可以完成SOAP的功能,所以,WebService很容易实现跨编程语言,跨编程语言自然也就跨了操作系统

 WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。 WSDL(webservice description language)是基于XML格式的,它是WebService客户端和服务器端都能理解的标准格式,其中描述的信息可以分为what,where,how等部分! WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:

• 注册到UDDI服务器,以便被人查找 • 直接告诉给客户端调用者,例如,在自己网站给出信息或邮件告诉。

第三篇:对联的生成方式

具体在写作对联时,人们一般采用以下几种方式。(一)诗词联句用前人诗词、文、赋中的句子联缀在一起形成对联,一般这种对联所占比例不大。如:古来才大难为用,老来诗名不厌低。该句集杜甫、陆游诗句而成。(二)改诗词将前人的诗词、文章或流传的格言等,略加修改,赋予新意。如:红花叶翠秀丽黄莺鸣暖树,人勤春早辛劳紫燕衔新泥。(白居易诗)(三)重新创作重新创作的对联往往立意好,有针对性,富有时代精神,给人以鼓舞、启迪和美的享受。这类对联在今天的对联队伍中占居多数。如:改革开放拓宽市场月月繁荣国力蒸蒸日上,引进推出活跃商潮心心喜悦民情节节高昂。又如:文艺舞台花色春来红似火,科学园地芽凸秀发绿如荫。

第四篇:对联的生成方式

具体在写作对联时,人们一般采用以下几种方式,对联的生成方式。(一)诗词联句

用前人诗词、文、赋中的句子联缀在一起形成对联,一般这种对联所占比例不大。如:

古来才大难为用,老来诗名不厌低。

该句集杜甫、陆游诗句而成。(二)改诗词

将前人的诗词、文章或流传的格言等,略加修改,赋予新意,范文《对联的生成方式》。如:

红花叶翠秀丽黄莺鸣暖树,人勤春早辛劳紫燕衔新泥。(白居易诗)(三)重新创作

重新创作的对联往往立意好,有针对性,富有时代精神,给人以鼓舞、启迪和美的享受。这类对联在今天的对联队伍中占居多数。如:

改革开放拓宽市场月月繁荣国力蒸蒸日上,引进推出活跃商潮心心喜悦民情节节高昂。又如:

文艺舞台花色春来红似火,科学园地芽凸秀发绿如荫。

第五篇:客户端学习总结

前面几个星期,我们学习了客户端的知识,其中主要有3个部分:xhtml,css,js。通过学习,我对客户端网页编程有了一个初步的了解,xhtml主要是页面内容的一个体现,是静态网页设计的基础,css用来控制页面的布局和网页的表现形式,javascript用于动态控制网页,以及对表单收集的数据进行客户端的验证。

xhtml和css是基础,这部分的内容不多也比较简单,学起来也比较轻松,主要是把其中概念要理解,而我们在实际编写网页时可以借助帮助手册,而且我们以后可能不会直接从事这方面的工作,所以现在只需要把基本的概念理解了就行了,以后在工作中能看懂代码就行。

javascript是我们客户端学习的重点,因为它也是一门编程语言,通过对它的学习,我们能掌握一些程序设计的技巧和思维。更为重要的是,它是一门面向对象的程序设计语言,它可以为我们以后学习java打下一个比较好的基础。我们以前学过的c语言是一种面向过程的语言,通过它的学习,我们对程序设计的一些思维有了初步的了解,知道了3种流程控制,而对javascript的学习,我们了解到了面向对象的一些基础知识,对象的概念等。

javascript也是我们这段时间学习的一个难点,由于以前没有面向对象程序设计的经验,这部分刚开始学的时候学得不是很好,要背的知识点太多,一部分知识要我们学习了java后重新回来才完全理解,有很多新的英语单词需要记。幸好李老师给了我们一个中文手册,有时候记不住的地方可以查手册,提高了我们学习的效率。对这部分的学习,感觉要从总体上来把握学习的知识点,不要抓住细节不放,如果能够将自己的思维提高到一个新的高度再回过头来看细节就比较轻松了。

javascript是一种弱类型的语言,它的特点是一个变量可以被赋值为多种类型的数据,我们在声明变量的时候不用声明它的类型,因为我们并不关心它的具体类型,这也是为什么在javascript中没有类这个概念的原因。类本身是一种复合的数据类型,对象才是具体的变量,在javascript中,任何一个变量可以被赋予任何类型的数据,我们对变量的类型并不关心,因此也没有类的概念。

消防支队开展先进性教育集中学习总结

党员先进性教育活动学习小结

科学发展观活动学习调研阶段总结

在javascript的后面几章,我们着重学习了对象模型,重点是标准文档对象模型dom和传统对象模型,以及浏览器对象模型,这部分的内容,主要是要记得多,知道每个对象都有什么属性和方法,最后我们总结了表单的验证,只要前面的内容都弄懂了,这部分学习起来就没有问题。

通过这2个多星期的学习,我对客户端网页编程有了一定的了解,已经进入java的学习了,这才是我们学习的重点,要更加的努力才行。

下载WebService客户端代码生成方式总结word格式文档
下载WebService客户端代码生成方式总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    java 调用webservice的各种方法总结

    一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务 1.首先建立一个Web services EndPoint: Java代码 package Hello; import javax.jws.WebService; im......

    软件工程代码总结

    1、事件处理事件的方法 2、class和id的用途是不一样的;首先要说明一下,选择器一共有三种: html标记,class,id; html标记就不说了,class是对html标记选择器的一种扩展,CLASS可以给......

    写代码总结

    一、排版: 1.关键词和操作符之间加适当的空格。 2.相对独立的程序块与块之间加空行 3.较长的语句、表达式等要分成多行书写。 4.划分出的新行要进行适应的缩进,使排版整齐,语句......

    Android客户端性能测试总结

    Android客户端性能软件测试小结 发布时间: 2012-3-09 13:52 作者: xiaowan 来源: TaoBao QA Team 字体: 小 中 大 |上一篇下一篇 |打印 |我要投稿 |推荐标签:性能测试软件测......

    PB11.5+WEB客户端编程技巧总结(★)

    PB11.5 WEB客户端编程技巧总结 一、概述 用PB11.5把现有C/S程序转换成WEB应用程序后,保留了大部分C/S环境下的代码,并且大部分都能执行过去。但是在BS平台下,原来的PB代码从客......

    域代码编写总结

    word域代码详解 域的基本操作 Ctrl+F9 插入域 Ctrl+Shift+F9把域转为纯文本 Shift+F9 切换为域代码显示 十个特殊指令(域开关) 1、数组a 2、括号b 3、平移d 4、分式f 5......

    单片机实验代码总结

    编者:方园 单片机实验代码集合(by fangyuan) 1.多字节累加程序: ORG 0000H LJMP MAIN ORG 0030H ;将加数和被加数送到指定地址 MAIN: MOV 20H,#45H MOV 21H,#74H MOV 30H,#67......

    DSP-C代码优化总结

    代码优化总结 在优化一段代码之前,首先要找出这段程序中最消耗时间的那一段程序,对最耗时程序段的优化会带来很大的优化效果收益。 一般而言,这个最耗时的程序一般位于一个循......