开发者关于 JAX-RPC 的介绍,第 2 部分: 研究 JAX-RPC 的规范提高 Web 服务互操作性
2009-11-07 00:00:00 来源:WEB开发网服务端点接口
Web 服务端点类是通过使用 WSDL2JAVA(一个由 Apache Axis 提供的 WSDL 到 Java 的映射工具)由服务端点界面派生出来的,而服务端点界面是根据 WSDL 定义创建的。正如 JAX-RPC 规范的 5.2 节中预先定义好的一样,这些服务端点必须和服务端点接口定义一致。这个定义的一些要求如下:
所有服务端点必须继承 java.rmi.Remote 接口。
所有由这个接口实现的方法必须抛出一个 java.rmi.RemoteException 。可能有特定于应用程序的异常作为这个标准异常的补充。
这个方法参数必须是 JAX-RPC 支持的 Java 类型。用这种方法,这个规范为 Java 平台和它对应的 XML 类型保证了一个适当的序列化/反序列化机制。
通常,Java接口可以通过使用 public static final 声明维护常量数据。然而,JAX-RPC 规范阻碍您这么做,这个规范表明 WSDL 1.1 在 wsdl.porttype 中对常量的表示不标准。
您可以使用 Holder 和 SOAPElement 类作为接口方法的自变量。(请参阅这个系列的第 1 部分,您可得到关于 Holder 和 SOAPElement 类的更多信息。)
清单 1包含一个服务端点接口的示例。
清单 1. 服务端点接口
Public interface AuthorSearchService implements java.rmi.Remote{
Public Books[] seachForAuthor(String authorName) throws java.rmi.RemoteException,
com.acme.InvalidAuthorName;
}
注意 清单 1 中的样本端点接口处理运行时 RemoteException 和应用程序级的 InvalidAuthorName 。在我描述 JAX-RPC 异常处理时,我将更深入地看一下语义上的意思以及应用程序异常之间的关系(在 WSDL 的上下文环境里)。
更多精彩
赞助商链接