售后服务用JARPC构建W服务_第1页
售后服务用JARPC构建W服务_第2页
售后服务用JARPC构建W服务_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、售后服务) 用 JARPC 构建 W 服务JAX-RPC 表示基于 XML 远程调用的 JavaAPI 。它是用于构建 Web 服务以及使用远程调用 (RPC)和 XML 客户端的 API 。通常用于分布式客户端 /服务器模式中, RPC 机制使得客户 端能够执行其他系统中的过程。于JAX-RPC 中,远程过程调用由 SOAP 这种基于 XML 的协议来表示。 SOAP 规范定义了封装结构, 编码规则,以及远程过程调用和响应间的约定。这些调用和响应于 http 上作为 SOAP 消息进行传 递。于这个版本中, JAX-RPC 支持 SOAP1.1 和 http1.1 。尽管 JAX-RPC 建

2、立于复杂的协议之上, 但API 为应用程序开发者隐藏了这壹复杂性。 于服务器端, 开发人员通过定义 Java 编程语言中接口的方法来指定远程过程。 开发者仍将编写壹个或多个实现 这些方法的类。客户端程序也是容易编写的。壹个客户生成壹个代理,表示服务的本地对象,然 后简单的调用代理上的方法。使用 JAX-RPC ,客户端和 web 服务均有巨大的优势 Java 编程语言的平台无关性。另外, JAX-RPC 是不受限制的:壹个 JAX-RPC 客户能够访问没有运行于 Java 平台的 web 服务,反之亦 然。 JAX-RPC 很灵活,因为它使用了全球网联合会( W3C )规定的技术: HTTP

3、, SOPA 以及 Web 服务描述语言( WSDL )。 WSDL 为以消息中操作的 endpoint 集的形势描述服务指定了壹 种 XML 格式。如果你是基于 XML 的 RPC(JAX-RPC) 的 JavaAPI 方面的新手,本章就是壹个起点,简明扼要地描 述了 JAX-RPC 后,本章将介绍如何构建壹个简单的 Web 服务及其客户。对于高级用户,本章继 续通过代码列表示例,壹步壹步的介绍动态客户的生成。简单示例: HelloWorld本例介绍了如何使用 JAX-RPC 来生成壹个名为 HelloWorld 的 Web 服务。 HelloWorld 服务 的远程客户能够调用 sayHe

4、llo 方法,该方法接受壹个字符串参数,然后返回壹个字符串。 运行期间的 HelloWorld图 11-1 显示了 HelloWorld 服务部署后的简化情况。下面给出运行期间发生情况的详细描述:1. 为了调用远程过程, HelloClient 程序调用占位程序中的方法,表示远程服务的本地对象2. 占位程序调用 JAX-RPC 运行系统中的例程3. 运行系统将远程方法调用转换成 SOAP消息,然后以壹个 HTTP 请求的形式传输消息。4. 当服务器接收到 HTTP请求时, JAX-RPC运行系统从请求中提取 SOAP 消息,然后传送到方法 调用。5. JAX-RPC 运行系统调用约束对象中的方

5、法。6. 约束对象调用 HelloWorld 服务实现中的方法。7. 服务器端运行系统将方法响应转换成SOAP消息,然后以 HTTP 响应的形式传输消息回客户端。8. 客户端, JAX-RPC 运行系统从 HTTP响应中提取 SOAP 消息,然后传输到 HelloClient 程序的方 法响应。图 11-1 运行期间的 HelloWorld 示例应用程序开发者只提供由图 11-1 描述的堆栈顶层,表 11-1 显示了各层的来源。表 11-1 谁(什么)提供该层层源HelloClient 程序由应用程序开发者提供HelloWorld 服务(定义了接口以及实现的类)占位程序由 wscomplie

6、工具生成,由应用程序开发者运行约束由 wsdeploy 工具生成, 由应用程序开发者运行JAX-RPC 运行系统包含于 JavaWSDP 中HelloWorld 文件对于 HelloWorld? 为了使用 JAX-RPC 生成服务, 应用程序开发人员必须提供壹些文件。目录的例子,这些文件于 <JWSDP_HOME> /docs/tutorial/examples/jaxrpc/hello 中: HelloIF.java- 服务定义接口HelloImpl.java- 服务定义实现类,它实现了 HelloIF 接口HelloClient.java- 远程客户,和服务联系,然后调用 sa

7、yHello 方法 config.xml- 由 wscompile 工具读取的配置文件 jaxrpc-ri.xml- 由 wsdeploy 工具读取的配置文件 web.xml-web 组件( servlet )的部署描述信息,由它分派服务安装首先必须设置环境变量 PATH ,包含这些目录:<JWSDP_HOME>/bin<JWSDP_HOME>/jwsdp-shared/bin接着,如果仍没有这样做,按照“开始 Tomcat ”壹章中介绍的:生成编译属性文件启动 Tomcat编译部署服务开发壹个 JAX-RPCWeb 服务的基本步骤如下:1 、编码服务定义接口和实现类2

8、 、编译第壹步中的服务定义代码3 、将代码打包成壹个 WAR 文件4 、生成约束和 WSDL 文件5 、部署服务。接下来的章节将更详细地描述每个步骤。编码服务定义接口和实现类服务定义接口声明了服务中远程客户能够调用的方法。接口必须遵循几个规则:它继承了 接口它必须没有像 publicfinalstatic 这样的连续声明方法必须抛出 或它的壹个子类。 (方法也能够抛出服务指定的异常。 )方法的参数和返回类型必须是支持的 JAX-RPC 类型。参见“ J-ARXPC 支持的类型”部分。 于该例中,服务定义接口是 HelloIF.java :packagehello; 除接口外,仍需要编写实现该接

9、口的类。于这个例子中,实现类称为 HelloImpl : packagehello;publicclassHelloImplimplemnetsHelloIF publicStringmessage= ” Hello ”;publicStringsayHello(Strings)returnmessage+s;编译服务定义代码要编译 HelloIF.java 和 HelloImpl.java ,进入目录 <JWSD_HOME>/docs/tutorial/examples/jaxrpc/hello ,然后键入如下命令: antcompile-server该命令将产生的 class

10、文件放置于 build/shared 子目录中。打包 WAR 文件要生成包含服务代码的 WAR 文件,输入这些命令: antsetup-we-infantpackagesetup-wen-inf 命令的目的是将 class 和 XML 文件复制到 build/WEB-INF 子目录中。而 package 的目的是运行 jar 命令, 将文件包于名为 dist/hello-portable.war的 WAR 文件中。 这个 WAR 文件仍不能部署,因为它不包含约束类。下壹部分将会学习如何生成可部署的 WAR 文件。 Hello-portable.war 包含如下文件:WEB-INF/classe

11、s/hello/HelloIF.classWEB-INF/classes/hello/HelloImpl.classWEB-INF/jaxrpc-ri.xmlWEB-INF/web.xml其中 class 文件是由前面部分显示的 compile-server 目标生成的。 web.xml 文件是实现服务的Web 应用程序的部署描述信息。 和 web.xml 文件不同, jaxrpc-ri.xml 文件不是规范的壹部分, 它 是实现特有的。这个例子的 jaxrpc-ri.xml 文件的内容如下: <?xmlversion="1.0"encoding="UTF-

12、8"?><webServices xmlns=""version="1.0" targetNamespaceBase="http:/com.test/wsdl" typeNamespaceBase="http:/com.test/types"urlPatternBase="/ws"><endpointname="MyHello" displayName="HelloWorldService" description=&qu

13、ot;Asimplewebservice" interface="hello.HelloIF"implementation="hello.HelloImpl"/><endpointMapping endpointName="MyHello" urlPattern="/hello"/> </webServices> 于 WSDL 文件中使用了壹些 webServices 属性,例如 targetNamespaceBase ,这些将于下壹节 中生成。 ( WSDL 文件能够很复杂

14、, 于指南中不作讨论。 参见“更多信息”。 )注意, urlPattern 的值( /hello )是服务的 URL 的壹部分,这将于“验证部署”部分描述。关于 jaxrpc-ri.xml 文件的更多信息,请参见“-rjai.xmrplc 文件”部分。如果你是高级用户,可能希望检验 XML 模式文件:<JWSDP_HOME>/docs/tutorial/examples/jaxrpc/common/jax-rpc-ri-dd.xsd 。生成约束和 WSDL 文件要生成约束和 WSDL 文件,输入下列命令:antprocess-war该命令按下列方式运行wsdeploy 工具:wsd

15、eploy tmpdirbuild/wsdeploy-generated-odist/hello-deployable.wardist/hello-portable.war 该命令运行 wsdeploy 工具,它执行这些任务: 读取 dist/hello-portable.war文件作为输入从 hello-portable.war文件中包含的 jaxrpc-ri.xml 文件里获得信息为服务生成约束类生成名为 MyHello.wsdl的 WSDL 文件将约束类、 Hello.wsdl文件,以及 hello-portable.war 文件的内容打包形成壹个名为dist/hello-jaxrpc.war的可部署的 WAR 文件。-tmpdir 选项指定 wsdeploy 将生成的文件存储于哪个目录,生成的文件包括 WSDL 文件、约束 类以及中间源代码文件。如果指定了 -keep 选项,这些文件不会被删除。有几种方式能够访问由 wsdeploy 生成的 WSDL 文件: 运行带有 -keep 选项的 wsdeploy ,然后于由 -tmpdir 选项指定的目录中查找 WSDL 文件 拆开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论