了解下JAVA的Java Web服务 - Axis2中的JAXB和JAX-WS
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。初期的ApacheAxis创建在第一个面向Web服务的Java尺度JAX-RPC的基本之上。现实证实,这并非一个很好的办法,由于JAX-RPC限定了Axis代码的外部计划,并且形成了功能成绩并缺少天真性。JAX-RPC还对Web服务开辟的偏向作出了假定,而这在厥后被证实是毛病的。
在入手下手Axis2开辟事情时,已动手研讨JAX-RPC的替换选择,因而,Axis2在计划时已思索到了充足的天真性,使其可以在基本框架之上完成对替换Web服务尺度的撑持。最新的Axis2版本同时完成了对JAXB2.xJavaXML数据绑定尺度和替换了JAX-RP的JAX-WS2.xJavaWeb服务尺度的撑持。本文将展现怎样将JAXB和JAX-WS用于Axis2并找出Axis2对这些尺度确当前撑持中存在的一些限定。
Axis2中的JAXB
Axis2完成了对JAXB2.x的撑持,将它作为数据绑定替换选择的个中之一,您能够在利用WSDL2Java从WebServicesDescriptionLanguage(WSDL)服务界说中天生代码时举行选择。和年夜多半其他替换选择一样,利用JAXB2.x从WSDL中天生的代码创立了一组链接(linkage)类和一组数据模子类。这些链接类,包含一个客户端stub和一个服务器端动静吸收器,充任使用程序代码和Axis2之间的接口。数据模子类暗示实践的动静数据。
JAXB2.x利用数据模子类中的正文来把持数据与XML之间的转换体例。正文办法同意您在无需修正源代码或从头编译类的情形下在运转时利用分歧的JAXB完成。由JAXB完成卖力从数据模子类会见正文信息并在实行XML转换时使用这些正文。
代码下载(拜见下载)供应了一个演示在Axis2中利用JAXB的示例使用程序,位于jaxb目次中。这个使用程序是本系列前一篇文章中的复杂的库办理服务的另外一个版本(包含“Axis2DataBinding”中的数据绑定对照)。WSDL服务界说界说了四个操纵:
getBook用来检索由InternationalStandardBookNumber(ISBN)标识的某本特定图书的细节信息
getBooksByType用来检索某一特定范例的一切图书的细节信息
getTypes用于查找可用的图书范例
addBook用于将旧书增加到库中
清单1显现的是经由大批编纂的WSDL,只包括了与getBook操纵有关的部分:
清单1.库服务WSDL
<wsdl:definitions targetNamespace="http://ws.sosnoski.com/library/wsdl"
xmlns:wns="http://ws.sosnoski.com/library/wsdl"
xmlns:tns="http://ws.sosnoski.com/library/types"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://ws.sosnoski.com/library/wsdl"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://ws.sosnoski.com/library/types"
schemaLocation="types.xsd"/>
<element name="getBook">
<complexType>
<sequence>
<element name="isbn" type="string"/>
</sequence>
</complexType>
</element>
<element name="getBookResponse">
<complexType>
<sequence>
<element name="getBookReturn" minOccurs="0" type="tns:BookInformation"/>
</sequence>
</complexType>
</element>
...
</schema>
</wsdl:types>
<wsdl:message name="getBookRequest">
<wsdl:part element="wns:getBook" name="parameters"/>
</wsdl:message>
<wsdl:message name="getBookResponse">
<wsdl:part element="wns:getBookResponse" name="parameters"/>
</wsdl:message>
...
<wsdl:portType name="Library">
<wsdl:operation name="getBook">
<wsdl:input message="wns:getBookRequest" name="getBookRequest"/>
<wsdl:output message="wns:getBookResponse" name="getBookResponse"/>
</wsdl:operation>
...
</wsdl:portType>
<wsdl:binding name="LibrarySoapBinding" type="wns:Library">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getBook">
<wsdlsoap:operation soapAction="urn:getBook"/>
<wsdl:input name="getBookRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getBookResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
<wsdl:service name="jaxb-library">
<wsdl:port binding="wns:LibrarySoapBinding" name="library">
<wsdlsoap:address location="http://localhost:8080/axis2/services/jaxb-library"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
页:
[1]