除了注解,我如何区分 JAX-WS 和 JAX-RPC?

Besides annotations, how do I distinguish JAX-WS from JAX-RPC?

两个问题

关于 JAX-WS 和 JAX-RPC 的两个问题

  1. 除了注释,如何区分 JAX-WS 和 JAX-RPC?

  2. 我可以做哪些简单的 POC 来了解 JAX-WS 比 JAX-RPC 更好用? (除了 JAX-RPC 是旧版本的原因)。我已经阅读了有关 JAX-WS 的所有内容及其优点,但我发现它很容易弄清楚具体示例或简单的概念证明,这些示例或简单的概念证明可以证明它比 JAX-RPC 更好地使用它。

有人可以帮忙吗?

this one 涵盖了您的第一个问题。总而言之,存在用于 JAX-RPC 的描述符文件,因为它使用 XML 映射文档来描述 marshal/unmarshal.

的基于反射的规则

关于你的第二个问题,我建议使用这两个框架编写相同的 HelloService Web 服务(提供程序)。我认为您会发现 JAX-WS 更容易,如果没有其他原因而不是查找教程文档的话。使用两个网络模块并按照教程创建相同的功能。

看看两者的工件。还可以尝试添加复杂的 Java 类型作为输入或输出。请注意,JAX-RPC 无法自动将许多 WSDL/schema 构造转换为 Java 等价物 - 一个很好的并排比较文章(和系列)is here

个人轶事 - 由于 JAXB 的基础,如果请求消息与 WSDL 有小的偏差(例如意外的输入元素等),JAX-WS 服务将更加宽容。为什么这很重要?版本控制和维护。使用 JAX-RPC,在不破坏 JAX-RPC 客户端应用程序的情况下用新字段更新服务提供者要困难得多,反之亦然。

指定时间

我看到它提到从 JavaEE 6 开始不推荐使用 JAX-RPC。我没有看到具体的措辞(服务器实现者将其列为 "proposed optional";the PDF spec 表示如下:

EE.12.2.3

JAX-WS JAX-WS, along with JAXB and the Metadata for Web Services specification, provides simpler and more complete support for web services than is available using the JAX-RPC technology. Applications that provide web services using JAX-RPC should consider migrating to the JAX-WS API.

(强调我的)。

JavaEE 7 spec 不仅将 JAX-RPC 列为可选(对于服务器实现者);它还将其包含在 "pruned Java technologies" 列表中 - 在后续 JavaEE 规范版本中彻底删除的候选者。

综上所述:如果您是更好的规范,您就无法摆脱 JavaEE 规范。