快速业务通道

使用J2EE构建服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
了。让我们关注一下J2EE对于web services的支持 。

使用J2EE作为Web Services的平台

J2EE 1.4为使用常规Java类或企业级Java Beans来创建和部署web services提供了一个全面的平台。 以下表格给出了J2EE 1.4中包括的web service APIs的细节。

定义在Java Community Process的JSR 101之下的JAX-RPC,提供了创建和访问web services的Java API,因此它是使用J2EE平台创建和部署web services的“心脏和灵魂”。通过向应用程序开发者隐藏XML 类型和Java类型映射的复杂性,以及处理XML和SOAP消息的底层细节,它提供了一个简单的,健壮的创建 web services应用的平台。为了引入一个方法调用范式,它提供了两种编程模式:服务器端模式,使用 Java类或无状态EJB开发web service 端点,和客户端模式,创建作为本地对象访问web services的Java 客户端。JAX-RPC 1.1要求使用SOAP 1.1,并且实现与使用其他技术创建的web services之间的互操作性 ,比如微软的.NET。实现了J2EE1.4规范的应用服务器,比如OC4J 10.1.3和SUN的Java System Application Sever,提供了对于JAX-RPC的支持。

JAX-RPC的叫法有点用词不当,因为它既支持RPC类型的web services,也支持文档类型的web services。

Web Services部署模型

在J2EE 1.4之前,所有J2EE商家都使用他们私有的部署模型支持web services。J2EE 1.4为Java Web Services定义了部署模型。它为J2EE平台上的web services制定了开发,部署以及服务发布和使用的标准 。

有了J2EE 1.4对web services的支持,让我们学习使用J2EE平台来建造web service的方法。

使用J2EE创建一个Web Service

把web service创建成一个轻便的和可互操作的分布式组件不是一项琐碎的任务。如之前讨论的,你既 可以把常规Java类,也可以把无状态EJB部署成web services。常规Java类被打包在一个web模块中,而 EJB web services被打包在标准的ejb-jar模块中。

在这两种部署选择中,你会使用哪一个呢?

Java 类对无状态EJB:永无止境的争论

你会选择常规Java类还是EJB作为你创建web service的技术可能是一个长期的争论。Java类比EJB更容 易开发,它是纯的Java对象,并且它不具有EJB带来的“额外辎重”。但是,EJB提供了几个很好的特点, 比如被声明的事务和安全性,因此它使开发者将精力集中于建立商业逻辑,而不需要担心基础服务架构。 EJB 3.0大大简化了设计模型,在它的规范中,EJB看起来就像常规Java类。

使用J2EE构建服务(4)

时间:2011-10-07 onjava Debu Panda

打包要求

无论你决定使用常规Java类还是EJB,你都必须把一些定义文件打包到你的WAR或ejb-jar中,这样你才 能将你的组件作为Java web service展示出来。下面是分别基于EJB和Java类的web service的打包结 构:

基于EJB 的web service的ejb-jar:

/META-INF/ ejb-jar.xml webservices.xml oracle-webservices.xml mapping-file.xml wsdl/ wsdl 文件 ejb classes (包括端点和bean类)

常规Java web service的web 应用(.war)

/WEB-INF/ web.xml webservices.xml oracle-webservices.xml mapping-file.xml wsdl/ the wsdl 文件 /classes/(包括端点和bean类) /lib/

让我们讨论每一个部署时的定义文件和描述符:

WSDL:如前所描述。

端点接口:web service端点必须实现java.rmi.Remote接口,并且在端点接口中的每一个方法都必须抛 出java.rmi.RemoteException异常。这个端点需要注册到模块(ejb-jar.xml或web.xml)的标准部署描述符 中。你的部署描述符(比如,ejb-jar.xml)需要包括如下条目:

<service-endpoint>

oracle.ejb21.ws.HelloServiceInf

</service-endpoint>

如下是一个Hello World web service的端点的代码:

public interface Hello

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号