Sun ONE Application Server 开发者指南(17)

类别:Java 点击:0 评论:0 推荐:

SOAP 处理者

处理者访问代表一个RPC请求或响应的SOAP消息。处理者类必须实现javax.xml.rpc.handler接口。处理者能够用javax.xml.soap程序包中的API操纵SOAP消息。

下面是处理者能够执行的任务举例:

加密解密 记录日志和审计 缓冲 针对特定应用的SOAP消息头处理

处理者链条是一系列的处理者。你可以为客户端和服务器个指定一个处理者链条:在客户端,请在jaxrpc-ri.xml文件中包含<handlerChains> 元素,在服务器端,请在config.xml文件中包含该元素。

下面是config.xml文件中<handlerChains>元素的一个例子:

<handlerChains>
<chain runAt="server"

roles= "http://acme.org/auditing
            http://acme.org/morphing"
    xmlns:ns1="http://foo/foo-1">

   <handler className="acme.MyHandler"

      headers ="ns1:foo ns1:bar"/>
      <property name="property" value="xyz"/>

   </handler>

   </chain>

</handlerChains>

JAX-RPC支持的Java语言类型

JAX-RPC把Java编程语言类型映射到XML/WSDL定义。例如,JAX-RPC把java.lang.String类映射为xsd:string这个XML数据类型。作为应用程序开发人员,你需要了解这些映射的细节,但必须明白并不是所有Java 2 标准版 (J2SE)中的类都能够在JAX-RPC中被用作方法的参数和返回类型。

J2SE SDK

JAX-RPC支持以下这些J2SE SDK类:

java.lang.Boolean java.lang.Byte java.lang.Double java.lang.Float java.lang.Integer java.lang.Long java.lang.Short java.lang.String java.math.BigDecimal java.math.BigInteger java.util.Calendar java.util.Date

这个版本的JAX-RPC还支持几个java.util.Collection接口的实现类。下表显示了被支持的类。第一列列出了java.util.Collection的子接口,第二列列出了该子接口支持的类。

支持的类

   java.util.collection子接口

支持的类

List

Array List
LinkedList
Stack
Vector

Map

HashMap
Hashtable
Properties
TreeMap

Set

HashSet
TreeSet

基本类型

JAX-RPC支持以下的Java编程语言基本类型:

boolean byte double float int long short

数组

JAX-RPC还支持成员是JAX-RPC支持类型的数组。例如支持数组int []和String []。而且还支持多维数组,例如BigDecimal [][]。

应用程序类

JAX-RPC还支持为应用程序编写的类。例如,在一个订单处理应用程序中你可能提供了名为Order、LineItem、和Product的类。JAX-RPC规范把这些类当作值类型引用,因为他们的值(或状态)可以在客户端与远程服务之间当作参数或返回值被传递。

为了能被JAX-RPC支持,应用程序类必须符合以下规则:

它必须拥有一个默认的构造函数。 它必须没有实现(直接或者间接)java.rmi.Remote接口。 它的成员必须是JAX-RPC支持类型。

类中可能含有公共的、私有的、或是保护的成员。为了在远程调用中传递(或返回)它的值,该成员必须满足以下要求:

公共成员不能是final或者transient类型的。 非公共成员必须有相应的getter和 setter方法。

JavaBeans组件

JAX-RPC还支持JavaBean组件,它们必须符合与应用程序类相同的一系列规则。而且,JavaBean组件还必须为每个bean属性提供getter和setter方法。Bean属性的类型必须是JAX-RPC支持的类型。

本文地址:http://com.8s8s.com/it/it16912.htm