问题. 什么是 Java API for XML-Based RPC(JAX-RPC)?
答. Java API for XML-Based RPC(JAX-RPC)使得 Java 技术开发人员使用基于 XML 的 RPC 功能构建 Web 应用程序和 Web 服务,此功能遵循 SOAP(简单对象访问协议,Simple Object Access Protocol)1.1 规范。
问题. JAX-RPC 如何使用 SOAP ?
答. 请参考 JSR-101 。
问题. 什么是 RPC?
答. RPC 代表远程过程调用(remote procedure call),它是能使客户端执行其他系统中程序的一种机制。RPC 机制常用于分布式客户端/服务器模型。服务器将服务定义为一系列过程,可供远程客户端调用。
问题. XML 如何与 RPC 相关联?
答. 远程过程调用是由基于 XML 的协议来表示的,比如 SOAP 。除了定义信封结构和编码规则之外,SOAP 规范还定义了远程过程调用和响应的表示惯例。
问题. 对于 Web 服务,JAX-RPC 必须做哪些工作?
答. 一个基于 XML 的 RPC 服务器应用程序可以定义、描述和导出一个的 Web 服务,如同基于 RPC 的服务一样。WSDL(Web 服务描述语言,Web Service Description Language)定义了一种 XML 格式,将服务描述为一组消息操作的端点集合。通过使用 JAX-RPC API ,开发人员可以用 WSDL 描述来实现客户端和服务。
问题. 客户端与 JAX-RPC 服务之间采用什么交互模式?
答. 有以下三种不同的模式:
1.同步请求-响应(Synchronous Request-Response):客户端调用远程程序并阻塞,直到它收到一个返回值或异常。
2.单向 RPC(One-Way RPC):客户端调用远程过程,但自身不阻塞或等待直到收到一个返回值。JAX-RPC 客户端的运行时系统可能会抛出异常。
3.非阻塞 RPC 调用(Non-Blocking RPC Invocation):客户端调用远程过程,并继续处理同一个线程的内容而不等待返回值。此后,客户端通过阻塞来接受返回值或轮询返回值,以此来处理远程方法的返回。
问题. 远程方法调用或响应能否传送服务内容信息?
答. 是的。例如它可能会传送唯一的事务标识符或数字签名。
问题. 为什么 xrpcc 没有生成 WSDL 文件?
答. xrpcc 工具实际上可以生成 WSDL 文件,但由于设计失误,如果不指定 ?keep 选项,该文件会同源文件一起被删除。您可以使用 ?keep 选项让 xrpcc 不删除 WSDL 或 .java 源文件。如果您使用 ?s sourcepath 选项,所有源文件将被放置在 sourcepath 目录中,然后您可以很容易地删除它们。 WSDL 文件将被放置在当前目录或由 ?d 选项指定的目录中。