JDK6:何时使用捆绑的JAX-WS实现与项目METRO
-
09-12-2019 - |
题
使用JDK6捆绑的JAX-WS实现可用于提供Web服务服务器,而无需任何其他库。JVM将在指定端口上的WS服务器启动。
http://java.sun.com/developer/technicalArticles/j2se/jax_ws_2/
http://java.sun.com/developer/technicalArticles/j2se/jax_ws_2_pt2/>
我所拥有的问题是,这与项目地铁有何不同?如果最终目标是在Tomcat中托管Web服务,那么我仍然可以使用捆绑的功能,然后只需重定向到此捆绑的WS服务器,或者更好地部署Metro Servlet?
解决方案
其他提示
这些组件中的每一个都有两个部分,API(规格)和称为参考实现(RI)的实施部分。 规范在“javax.xml.ws”,'javax.xml.bind'等中定义,RI在“com.sun.xxx”软件包中。
现在在JDK 6周围的某个地方,更新4,Sun / Oracle在JDK IT Self中开始捆绑这些API + RIS,并保留更新这些更新到JDK。
作为最后的JDK 6 Update31,JDK包含以下JAXW和JAXB API的验证,以及RI
JDK6 U31 - JAXB API @ 2.1&RI @ 2.1.10,JAXWS API @ 2.1和RI @ 2.1.6
现在,如果你去和 http://jax-ws.java.net 页面,并查看最后一个版本下面的2.1.x下,您将看到JAXB RI为2.1.13,JAXWS RI为2.1 .7,即与最新JDK 6更新捆绑在一起的2.1 SPCE的RI实现是在地铁下发布的几个版本。
所以要使用最新的2.1罐,只需将API + RI jars复制到类路径,如此
Metro 1.5是捆绑了2.1 Spces和该规范的最新RI的最后一个版本,即地铁1.5包含JAXW和JAXB API @ 2.1和JAXWS RI @ 2.1.7和JAXB RI @ 2.1.13。
Metro 2.0向前,捆绑JAXB和JAXWS API v2.2和释放数据的最新RI。 例如最新的Metro版本2.2捆绑JAXB RI 2.2.5和JAXWS RI 2.2.6。
但是有一个捕获,JDK 6捆绑v2.1对于JAXW和JAXB(API + RI),如果您只需使用JAXWS,在类路径中的JAXB v2.2 jar,它将无法正常工作。您必须使用已译者的jar机制,如此 http:// jax- ws.java.net/2.2.3/docs/releasenotes.html#running_on_top_of_jdk_6
还有一些更有趣,地铁只是一个包含JAX-WS,JAXB项目(其他)的伞项目,但它也使得一个超级罐中的这些项目。
soeg.,Metro的WebServices-API.jar包含JAXWS-API.jar,JAXB-API.jar(RI)+ API,如WSIT,JAX-WS-COMPONS等。
和webservices-rt.jar包含JAXWS-RT.JAR,JAXB-RT.jar,+ RT JAR的其他儿童等儿童项目,如WSIT,JAX-WS-Commons等。