如何确定Java Web服务是JAX-WS还是JAX-RPC

我被要求完成一些与应用程序中的许多Web服务相关的文档,并指出每个服务是否使用JAX-WS或JAX-RPC实现。 这些服务已经开发了很多年,可能使用各种方法,包括RAD内置的Web服务向导,以及使用从Maven调用的wsimport。 而且他们也随着时间的推移而改变和发展 – 即使在有些原始文件说这项服务是其中之一的情况下,我也不确定他们可以信任多少。

如果服务是JAX-WS或JAX-RPC,有没有明确的标记让我知道? 我可以完全访问源代码,WSDL和模式。 我只是不确定要找什么。

如果您在Java源代码中看到@WebService ,那肯定是JAX-WS服务类。 JAX-WS结合使用自己的注释,并利用JAXB注释( @XmlType中的@XmlType )将Java序列化/反序列化到XML。

如果您在Web模块中看到webservices.xml或XML文件,其名称似乎映射到已知的Web服务名称,并且可能看起来像这个示例 ,那么这些是JAX-RPC服务。 JAX-RPC使用reflection和映射文件将一组有限的Java类型转换为XML或从XML转换。 您甚至可以搜索/ grep代码库中的XML命名空间值,例如http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsdhttp://java.sun.com/xml/ns/jax-rpc/ri/config用于查找此类映射文件 – 它们的名称可能会引导您使用JAX-RPC实现的服务。