用JAX-RPC构建Web服务.docx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAX RPC 构建 Web 服务
- 资源描述:
-
JAX-RPC表示基于XML远程调用的Java API。它是用于构建Web服务以及使用远程调用(RPC)和XML客户端的API。通常用在分布式客户端/服务器模式中,RPC机制使得客户端可以执行其他系统中的过程。 在JAX-RPC中,远程过程调用由SOAP这种基于XML的协议来表示。SOAP规范定义了封装结构,编码规则,以及远程过程调用和响应间的约定。这些调用和响应在http上作为SOAP消息进行传递。在这个版本中,JAX-RPC支持SOAP1.1和http1.1。 尽管JAX-RPC建立在复杂的协议之上,但API为应用程序开发者隐藏了这一复杂性。在服务器端,开发人员通过定义Java编程语言中接口的方法来指定远程过程。开发者还将编写一个或多个实现这些方法的类。客户端程序也是容易编写的。一个客户生成一个代理,表示服务的本地对象,然后简单的调用代理上的方法。 使用JAX-RPC,客户端和web服务都有巨大的优势——Java编程语言的平台无关性。另外,JAX-RPC是不受限制的:一个JAX-RPC客户可以访问没有运行在Java平台的web服务,反之亦然。JAX-RPC很灵活,因为它使用了全球网联合会(W3C)规定的技术:HTTP,SOPA以及Web服务描述语言(WSDL)。WSDL为以消息中操作的endpoint集的形势描述服务指定了一种XML格式。 如果你是基于XML的RPC(JAX-RPC)的Java API方面的新手,本章就是一个起点,简明扼要地描述了JAX-RPC后,本章将介绍如何构建一个简单的Web服务及其客户。对于高级用户,本章继续通过代码列表示例,一步一步的介绍动态客户的生成。 简单示例:HelloWorld 本例介绍了如何使用JAX-RPC来生成一个名为HelloWorld的Web服务。HelloWorld服务的远程客户可以调用sayHello方法,该方法接受一个字符串参数,然后返回一个字符串。 运行期间的HelloWorld 图11-1显示了HelloWorld服务部署后的简化状况。下面给出运行期间发生情况的详细描述: 1. 为了调用远程过程,HelloClient程序调用占位程序中的方法,表示远程服务的本地对象。 2. 占位程序调用JAX-RPC运行系统中的例程。 3. 运行系统将远程方法调用转换成SOAP消息,然后以一个HTTP请求的形式传输消息。 4. 当服务器接收到HTTP请求时,JAX-RPC运行系统从请求中提取SOAP消息,然后传送到方法调用。 5. JAX-RPC运行系统调用约束对象中的方法。 6. 约束对象调用HelloWorld服务实现中的方法。 7. 服务器端运行系统将方法响应转换成SOAP消息,然后以HTTP响应的形式传输消息回客户端。 8. 客户端,JAX-RPC运行系统从HTTP响应中提取SOAP消息,然后传输到HelloClient程序的方法响应。 图11-1 运行期间的HelloWorld示例 应用程序开发者只提供由图11-1描述的堆栈顶层,表11-1显示了各层的来源。 表11-1谁(什么)提供该层 层 源 HelloClient程序 HelloWorld服务(定义了接口以及实现的类) 由应用程序开发者提供 占位程序 由wscomplie工具生成,由应用程序开发者运行 约束 由wsdeploy工具生成,由应用程序开发者运行 JAX-RPC运行系统 包含在Java WSDP中 HelloWorld文件 § 为了使用JAX-RPC生成服务,应用程序开发人员必须提供一些文件。对于HelloWorld的例子,这些文件在<JWSDP_HOME>/docs/tutorial/examples/jaxrpc/hello目录中:HelloIF.java-服务定义接口 § HelloImpl.java-服务定义实现类,它实现了HelloIF接口 § HelloClient.java-远程客户,与服务联系,然后调用sayHello方法 § config.xml-由wscompile工具读取的配置文件 § jaxrpc-ri.xml-由wsdeploy工具读取的配置文件 § web.xml- web组件(servlet)的部署描述信息,由它分派服务 安装 首先必须设置环境变量PATH,包含这些目录: <JWSDP_HOME>/bin <JWSDP_HOME>/jwsdp-shared/bin <JWSDP_HOME>/jaxrpc-1.0.3/bin <JWSDP_HOME>/jakarta-ant-1.5.1/bin 接着,如果还没有这样做,按照“开始Tomcat”一章中介绍的: 生成编译属性文件 启动Tomcat 编译部署服务 开发一个JAX-RPC Web服务的基本步骤如下: 1、 编码服务定义接口和实现类 2、 编译第一步中的服务定义代码 3、 将代码打包成一个WAR文件 4、 生成约束和WSDL文件 5、 部署服务。 接下来的章节将更详细地描述每个步骤。 编码服务定义接口和实现类 服务定义接口声明了服务中远程客户可以调用的方法。接口必须遵循几个规则: 它继承了java.rmi.Remote接口 它必须没有像public final static这样的连续声明 方法必须抛出java.rmi.RemoteException或它的一个子类。(方法也可以抛出服务指定的异常。) 方法的参数和返回类型必须是支持的JAX-RPC类型。参见“JAX-RPC支持的类型”部分。 在该例中,服务定义接口是HelloIF.java: package hello; import java.rmi.Remote; import java.rmi.RemoteException; public interface HelloIF extends Remote{ public String sayHello(String s) throws RemoteException; } 除接口外,还需要编写实现该接口的类。在这个例子中,实现类称为HelloImpl: package hello; public class HelloImpl implemnets HelloIF{ public String message=”Hello”; public String sayHello(String s){ return message+s; } } 编译服务定义代码 要编译HelloIF.java和HelloImpl.java,进入目录<JWSD_HOME>/docs/tutorial/examples/jaxrpc/hello,然后键入如下命令: ant compile-server 该命令将产生的class文件放置在build/shared子目录中。 打包WAR文件 要生成包含服务代码的WAR文件,输入这些命令: ant setup-we-inf ant package setup-wen-inf命令的目的是将class和XML文件复制到build/WEB-INF子目录中。而package的目的是运行jar命令,将文件包在名为dist/hello-portable.war的WAR文件中。这个WAR文件还不能部署,因为它不包含约束类。下一部分将会学习如何生成可部署的WAR文件。Hello-portable.war包含如下文件: WEB-INF/classes/hello/HelloIF.class WEB-INF/classes/hello/HelloImpl.class WEB-INF/jaxrpc-ri.xml WEB-INF/web.xml 其中class文件是由前面部分显示的compile-server目标生成的。web.xml文件是实现服务的Web应用程序的部署描述信息。和web.xml文件不同,jaxrpc-ri.xml文件不是规范的一部分,它是实现特有的。这个例子的jaxrpc-ri.xml文件的内容如下: <?xml version="1.0" encoding="UTF-8"?> <webServices xmlns=" version="1.0" targetNamespaceBase="http://com.test/wsdl" typeNamespaceBase="http://com.test/types" urlPatternBase="/ws"> <endpoint name="MyHello" displayName="HelloWorld Service" description="A simple web service" interface="hello.HelloIF" implementation="hello.HelloImpl"/> <endpointMapping endpointName="MyHello" urlPattern="/hello"/> </webServices> 在WSDL文件中使用了一些webServices属性,例如targetNamespaceBase,这些将在下一节中生成。(WSDL文件可以很复杂,在指南中不作讨论。参见“更多信息”。)注意,urlPattern的值(/hello)是服务的URL的一部分,这将在“验证部署”部分描述。 关于jaxrpc-ri.xml文件的更多信息,请参见“jaxrpc-ri.xml文件”部分。如果你是高级用户,可能希望检验XML模式文件:<JWSDP_HOME>/docs/tutorial/examples/jaxrpc/common/jax-rpc-ri-dd.xsd。 生成约束和WSDL文件 要生成约束和WSDL文件,输入下列命令: ant process-war 该命令按下列方式运行wsdeploy工具: wsdeploy –tmpdir build/wsdeploy-generated -o dist/hello-deployable.war dist/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文件 拆开WAR文件(jar –x),由wsdeploy输出,然后到WEB-INF目录中查找WSDL文件 按下面部分描述的来部署和验证服务。“验证部署”中显示的URL对应的HTML页面中有一个到WSDL文件的链接。 注意wsdeploy工具并不部署服务;而是生成一个可以被部署的WAR文件。在下一部分,将会部署wsdeploy生成的hello-jaxrpc.war文件所包含的服务。关于wsdeploy的更多信息,参见“wsdeploy工具”部分。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




用JAX-RPC构建Web服务.docx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/8949795.html