有帮助吗?

解决方案

据我所知,JAX-WS只是一个模板,它必须由JDK6或Metro实现实现。

Metro刚刚使用GlassFish应用程序服务器附带的标准实现。查看此处

因此不应该有任何差异。

其他提示

嗯, 您必须了解地铁的第一件事是,它是各种WS相关项目viz的伞形项目。 JAX-WS,JAXB,WSIT,JAX-WS-Commons等。

这些组件中的每一个都有两个部分,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复制到类路径,如此 http://jax-ws.java.net/2.1.7/docs/releasenotes.html#running_on_top_of_jdk_6 为了使事情更加混乱,Metro伞形项目拥有自己的版本号,截至今天,1.5,2.0,2.0.1,2.1,2.1.1,2.2

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

因此,对于任何Metro Redels 2.0及更高版本,您需要在$ java_home / jre / lib / endored下复制JAX-WS-API.jar和JAXB-API.jar文件,或使用-djava.endored .dirs系统属性。

还有一些更有趣,地铁只是一个包含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等。

所以总结 -

如果要对JAXWS / JAXB V2.1规范开发WS,只需使用JDK 6(任何过去U04的更新)。 如果您希望绝对肯定使用2.1规范的最新API + RIS版本,只需使用来自JAXW和JAXB的最后2.1.x释放罐。 IE在CLASSPATH中使用JAX-WS 2.1.7和JAXB 2.1.13,[或者您可以使用Metro 1.5的WebServices-API.jar和WebServices-RT.jar捆绑JAXWS / JAXB / WSIT /。 。]

如果要对最新的JAXWS / JAXB v2.2规范开发WS,那么您必须使用JAX-WS v2.2.6和JAXB Ver 2.2.5 JAR [或者使用Metro 2.2的WebServices -api.jar和webservices-rt.jar捆绑JAXWS / JAXB / WSIT .. 但是您必须使用如上所述的认可jar机制,以覆盖JDK包括JAXWS / JAXB v2.1罐。

我的建议 - 如果v2.1可以使用Metro 1.5 Jars(WebServices-API,WebServices-RT)。 如果您需要v2.2使用Metro 2.2 jars(WebServices-API,WebServices-RT),并确保将WebServices-API.jar放在最终的DIR中。

您将需要Metro Jars(WebServices- [API,RT] .jar),如果您将使用像FastInfosets,MTOM等的东西,作为JDK捆绑的罐子,或者只是JAXWS-RI.jar jaxb-ri.jar不会给你这些功能。

希望这相当长的邮件有助于清除一些东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top