以下就是余额查询的代码,是一个非常简单的服务返回给出已知帐号的余额。
BalanceEnquiryService.java
public class BalanceEnquiryService
{
public float getBalance(String accountNo)
{
if(accountNo.equals("12345"))
return 5000f;
else
return 100f;
}
}
WEB服务中的web-service.xml 必须要修改为包含处理链的描述,下面几个部分需要在web-service.xml 中修改的:
1)在<web-services> 的根元素中创建一个<handler-chains> 子元素,在这个子元素中包含了WEB服务中一系列处理链程序的定义。
2) 创建<handler-chains>的子元素<handler-chain> ,在这个子元素中,显示了所有处理链中的处理程序。对于每一个处理程序,使用类名必须指定 java类的全限定名以便实现处理程序。使用<init-params>元素来指定处理程序的初始化参数。
<handler-chains>
<handler-chain name="myChain">
<handler class-name="myHandlers.handlerOne" />
<handler class-name="myHandlers.handlerTwo" />
<handler class-name="myHandlers.handlerThree" />
</handler-chain>
</handler-chains>
3.使用<operations>(它本身是<web-service> 的子元素)的子元素<operation>元素,来详细说明处理链是WEB服务中的一个操作。
注意:处理链只是自执行的,没有后台组件参与执行,在这中情况下,只要使用处理链属性中的<operation>元素并且并不需要指定组件或方法的属性,就像下面所选其中的一部分:
<web-service>
<operations>
<operation name="chainService"
handler-chain="myChain" />
</operations>
</web-service>
这里有一个完整的WEB.xml的例子:
web-service.xml
<web-services xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<handler-chains>
<handler-chain name="AuthenticationHandlerChain">
<handler class-name="AuthenticationHandler" />
</handler-chain>
</handler-chains>
<web-service name="BalanceEnquiryService"
uri="/BalanceEnquiryService"
targetNamespace="http://www.bea.com">
<components>
<java-class name="jccomp0"
class-name="BalanceEnquiryService">
</java-class>
</components>
<operations>
<operation method="getBalance"
handler-chain="AuthenticationHandlerChain"
component="jccomp0">
<params>
<param name="param0" class-name="java.lang.String"
style="in" type="xsd:string" />
<return-param name="result"
class-name="java.lang.Float"
type="xsd:float" />
</params>
</operation>
</operations>
</web-service>
</web-services>
这里面处理链的名字叫做AuthenticationHandlerChain,这里面包含了一个 AuthenticationHandler处理程序,注意,在操作中包含了操作属性handler-chain= "AuthenticationHandlerChain".
