使用J2EE构建服务 - 编程入门网
ServiceInf
extends java.rmi.Remote {
java.lang.String sayHello(java.lang.String name)
throws java.rmi.RemoteException;
}
使用J2EE构建服务(5)时间:2011-10-07 onjava Debu PandaWeb service部署描述符:J2EE平台需要一个名叫webservices.xml的部署描述符。它指定了部署到J2EE 应用服务器所需的全部web service描述符,以及它们与容器资源和服务的依赖关系。同时,它还指定 了:WSDL的位置;mapping.xml,它包含了Java到WSDL的映射;和Hello World web service的服务端点接口 。在Resources章节中给出了一个与示例代码打包在一起的webservices.xml的例子。 商家规范部署描述符:一些实现规范参考,比如上下文根目录和端点地址,不能在web service部署描 述符中指定。取而代之,你应该在商家规范部署描述符中指定它们。例如,如果你正使用OC4J,你将需要 在WAR或ejb-jar中打包一个oracle-webservices.xml文件来定义那些属性。 Java-WSDL映射:这个文件定义了WSDL和Java类间的映射。映射文件没有标准的名字;web services部署 描述符决定了它的名字。 在把你的组件部署为web service之前,你必须把所有的定义文件打包到WAR或ejb-jar模块中。有很多 开发工具,比如Oracle JDeveloper,通过完成平凡的任务,比如生成部署描述符,映射文件等,简化了 web service的开发。此外,大多数应用服务器都提供了web services装配工具,它们能够满足J2EE web service的打包要求。 除了理解组成一个web service的组件和相关的打包要求外,还有一些在你开发web service时必须解 决的架构问题。 构建服务的途径 创建一个web service时的主要挑战是为服务确定合适的粒度。你可以新建一个服务,也可以展示一个 由Java类或EJB创建的已经存在的组件并把它发布为一个服务。当创建服务的时候,你可以使用自顶向下 方法或自底向上方法: 自底向上方法:这个方法允许把一个现有的Java类或EJB发布为web service。这是很流行的创建服务的 方法,因为它使你不必重写应用程序,而是重用你现有的商业逻辑。如果你使用这种方法,你必须为你的 web service实现添加一个web service端点接口,同时创建一个WSDL,它同其他部署描述符一样用来描述 web service。由应用服务器提供的工具,比如Oracle Application Server的web service装配工具,通 过生成WSDL,webservices.xml等描述符以及web services组件的映射文件使您的开发生活更加简单―― 这把开发者从手工创造那些文件的痛苦中解放了出来。 自顶向下方法:这是创建服务的“纯粹”的方法,它更适合于当你根据草稿创建服务的时候。你从使用 WSDL来描述服务开始,而不是直接跳入到实现。这个方法比自底向上方法更优越,因为在开发web service的同时,由于对操作,信息和对WSDL的控制的仔细考虑,使得服务更容易使用,更可维护和更可 互操作。一些J2EE厂商提供了工具使这种方法变得更容易,例如,Oracle Application Server的web services装配器能够生成接口,部署描述符以及你用来创建应用程序的类框架。 互操作问题 显然,你的web services在本质上的可互操作性是必要的。J2EE 1.4要求与Basic Profile 1.0(由Web Services:Interoperability(WS-I)机构指定)保持一致。当创建web services时,你必须在将它们部署到 产品中之前测试它们的互操作性。 除了设计方法和服务互操作的需要,你可以遵循一些最优方法来使你的web service效用最大化。 最佳实践 这里有一些开发web services的最优方法: 避免在你的应用程序中过度使用web services。检查你是否真的需要把你的应用程序发布为web service。 服务的模块性是很 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |