chain是若干个Handler的集合(handler串)
service----Handler:这种技术主要是解决我们对Handler个性化的配置,比如我们A用户访问要三个Handler处理,B用户访问要5个Handler,这个时候我们可以使用Handler chain
在handler当中配置我们的参数
<handler name="HelloWorldHandler" type="java:webservice.axis.handler.HelloWorldHandler" >
<parameter name="state" value="123456"/>
</handler>
上面当在我们的server-config.wsdd中配置了相应的handler的时候,我们就可以在我们的BasicHandler的子类中使用下面的代码获取我们的这个参数的值
String state = (String) this.getOption("state"); --->>在代码上通过这个方式来得到我们配置的参数
在我们的Service的配置中添加我们的请求时过滤和响应时过滤
<service name="HelloWorld" provider="java:RPC">
<parameter name="className" value="webservice.axis.ws.HelloWorld" />
<parameter name="allowedMethods" value="*" />
<requestFlow> 这个是请求handler
<handler type="HelloWorldHandler"></handler>
<handler type="HelloWorldHandler2"></handler>
</requestFlow>
<responseFlow> 这个是响应handler
<handler type="HelloWorldHandler"></handler>
<handler type="HelloWorldHandler2"></handler>
</responseFlow>
</service>
以上是在没有使用过滤器chain的时候,我们对一个service配置多个handler的方法。
下面我们来介绍在axis中使用我们配置的chain来完成多个handler的配置:
public class HelloWorldChain extends SimpleChain {
//自定义Handler串
public HelloWorldChain() {
//调用客户需要使用的Handler
HelloWorldHandler handler1 = new HelloWorldHandler();
HelloWorldHandler2 handler2 = new HelloWorldHandler2();
//将使用的handler放入到chain中
this.addHandler(handler1);
this.addHandler(handler2);
}
}
在server-config.wsdd中配置
<chain name="HelloWorldChain">
<handler type="java.webservice.axis.handler.HelloWorldHandler"/>
</chain>