如何定义webservice响应的soap报文

Python036

如何定义webservice响应的soap报文,第1张

本Guide利用Eclipse以及Ant建立一个简单的WebService,以演示WebService的基本开发过程:1.系统条件:EclipseJavaEEIDEforWebDevelopersJavaSE6WindowsXP2.基本环境搭建:1)JavaSE6JDK的安装:下载JavaSE6JDK,双击,安装默认选项进行安装即可。2)Eclipse的安装与配置:安装时直接解压。配置处有两点,Window>Preferences>Java>InstalledJREs确保如下设置:安装路径可能略有不同。Window>Preferences>Java>Compiler确保如下设置:3.建立Server端工程和相关包与类:创建一个JavaProject,命名为wsServerHelloWorld:在这个项目下建立包:org.gnuhpc.wsServer在这个包下边建立类:SayHello在SayHello.java文件中输入以下代码:packageorg.gnuhpc.wsServerimportjavax.jws.WebService@WebServicepublicclassSayHello{privatestaticfinalStringSALUTATION="Hello"publicStringgetGreeting(Stringname){returnSALUTATION+""+name}}其中注意到@WebService,这个称作annotation或者metadata,JavaSE5中的WebServicesMetadataSpecification引入的。JavaSE6中对于WebServices规范的升级以及JAX-WS(JavaAPIforXMLWebServices)2.0规范,这些升级使得我们WebServices的创建和调用变得更加容易。使用这些新功能,我们可以仅仅使用简单的Annotations注释从一个Java类创建WebServices。开发者将其类和方法之前用该annotations指定,类告诉runtimeengine以WebService的方式和操作来使能该类和方法。这个annotations可以产生一个可布署的WebService,是一个WSDL映射annotations,将Java源代码与代表WebService的WSDL元素连接在了一起。4.使用Ant产生Server端代码:首先在项目中新建一个文件:build.xml,然后使用OpenWith>AntEditor打开,输入以下脚本代码:default指定了默认执行的Target为wsgen,wsgen可以创建一个能够使用WebService的类,它生成所有用于WebService发布的源代码文件和经过编译过的二进制类文件。它还生成WSDL和符合规范的该类的WebService。Target名称为wsgen,具体执行的命令的参数:-cp为类路径-keep后产生的java文件-s产生的源文件放在哪-d产生的输出问价放在哪然后使用AntBuild选项运行:在成功执行的提示后,我们刷新一下Project我们在Project区域可以看到,结果如下:5.分布WebServiceorg.gnuhpc.wsServer下建立一个类RunService:packageorg.gnuhpc.wsServerimportjavax.xml.ws.EndpointpublicclassRunService{/***@paramargs*/publicstaticvoidmain(String[]args){System.out.println("SayHelloWebServicestarted.")Endpoint.publish("http://localhost:8080/wsServerExample",newSayHello())}}运行RunAs>JavaApplication。我们得到结果,说明这个webservice的Server端已经启动。6.查看WSDL:Window>ShowView>Other>General>InternalWebBrowser,在其中输入:http://localhost:8080/wsServerExample?wsdl你可以看看到底WSDL都记录了哪些信息。看完后可以停止该Server。7.监测Server我们创建完Server可以用过EclipseWebServicesExplorer监测Server,Window>OpenPerspective>Other>JavaEE打开EclipseWebServicesExplorer点击右上角的WSDLPage按钮:单击WSDLMain,在URL中输入:http://localhost:8080/wsServerExample?wsdl按Go按钮后出现一下视图:我们可以触发一个WebService操作:点击getGreetings,添加一个参数,比如gnuhpc,然后点击Go按钮:8.创建Client端工程和相关包与类:创建一个JavaProject,命名为wsClientHelloWorld,在这个项目下建立包:org.gnuhpc.wsClient9.使用Ant产生Client代码框架:编写Webservice时,可以使用工具来利用WSDL生成进行调用的客户端桩;或者也可以使用底层API来手动编写Webservice。前者方便,后者灵活,现在我们通过前者做说明:新建文件build.xmlNew>File>build.xml注意:wsgen支持从Javaclass创建Webservices,wsimport支持从WSDL创建Webservices,分别对应于JAX-RPC方式下的Java2WSDL和WSDL2Java。要根据发布的WSDL进行创建,这也就是为什么要先运行RunServer的原因了。运行Server的RunService:RunAs>JavaApplication>运行该Ant脚本,产生Client代码:RunAs>AntBuild运行成功的提示如下:生成的代码如下:这一步读取WSDL并生成客户端桩。这些桩是将为我们的代码所用的Java类和接口。这些桩给服务器端功能提供了一个客户端接口。例如,如果我们的服务器提供一个Maths服务,该服务带有一个叫做add的方法。我们的客户端代码将调用桩上的一个方法,而桩实现将对该方法使用参数封装,把Java方法调用变为Webservice请求。这个请求将基于HTTP发送给服务器,而且将使用SOAP作为RPC协议。监听服务器接收该SOAP消息,然后(十有八九)将其转换为服务器处的一次方法调用。

say的读音:英 [seɪ] ;美 [seɪ] 。

vt. 讲;说明;例如;声称;假设;指明

vi. 讲;表示;念;假定;背诵

n. (Say)人名;(土)萨伊;(法、老、柬)赛;(英)塞伊;(匈、罗)绍伊

短语

Lim Swee Say 林瑞生

Time to say goodbye 告别时刻 永相随 永志不谕

Say You Say Me 说你说我 说你 谈情说爱 我俩共勉

词语辨析

speak, say, tell, talk

speak 着重开口发声,不着重所说的内容,一般作不及物动词,用作及物动词,宾语只能是某种语言等少数几个名词,不能接that从句。

say 着重所说的话,可用作及物动词,带宾语从句。

tell 表示告诉,有时兼含“嘱咐”,“命令”等。Tell the truth说真话,tell a lie说谎,tell a story讲故事等为固定搭配。Tell是及物动词,但其后不跟that从句。

talk 表示通过谈话方式交换意见、思想、消息等,一般只作不及物动词。