开发者关于 JAX-RPC 的介绍,第 2 部分: 研究 JAX-RPC 的规范提高 Web 服务互操作性
2009-11-07 00:00:00 来源:WEB开发网您开发一个服务端点类时,您必须确保这个端点不维护任何属于客户机的状态。这个运行时系统可以把多个对该服务端点接口的客户机调用分派到对于这个单一实例。并且注意这些服务端点示例可能被运行时程序合用以提高性能。
在运行时系统把端点从客户服务里除去时,这个运行时系统必须调用 ServiceLifecycle.destroy() 方法。这有助于服务类实例放弃它正在使用的资源。
异常处理
您可以看到 JAX-RPC 规范试图在应用程序级和运行系统级处理 Web 服务运行时的异常,这是基于服务端点接口的标准设计方法以及它对 wsdl.fault 元素的映射。
这个特定于服务的异常是在 wsdl.fault 元素中声明的,这些异常类型是由 java.lang.Exception 类派生的。 清单 4 中的 wsdl.operation 声明包括特定的 wsdl.fault 元素。
清单 4. wsdl.operation 声明<message name="AuthorNotFoundException">
<part name="Author" type="xsd:string" />
</message>
<portType name ="BookSearch">
<operation name="getBooksByAuthor" >
<input message="tns:getAuthorName">
<output message="tns:getBookList">
<fault name=" AuthorNotFoundException" message=" tns: AuthorNotFoundException">
</operation>
</portType>
在 清单 5中,您可以看到 JAX-RPC 规范怎样创建它的服务端点来处理特定于服务的 JAVA 异常。
清单 5. 处理特定于服务的 JAVA 异常Public interface BookSearch implements java.rmi.Remote{
Public Books[] getBooksByAuthor(String authorName) throws java.rmi.RemoteException,
com.acme.AuthorNotFoundException;
}
赞助商链接