五、Chain链的作用
Chain是一个链,是Handler的链。也就是说一次请求可能要执行多个Handler。 1、下面我们就编写一个Handler,让它用chain的方法执行。 ? ? ? 上面的HandlerChain继承了SimpleChain,在构造器中创建了RequestHandler、ResponseHandler, 然后用addHandler添加到chain的handler中。特别说明下,这里的chain其实也是一个handler,为什么这样说?我们继承的 SimpleChain就继承了BsaicHandler这个抽象类,所以chain也是一个handler。有人想既然是handler那它的配置也应 该和handler差不多,没错chain的配置可以引用handler的配置。 ? 2、配置chain的wsdd文件 先看配置方式1:
? ? ? 在chain元素中配置了一个handler标签,这个标签的type就是classpath类路径,然后在requestFlow标签中配置chain元素标签,用type引用上面的chain即可。 ? 配置方式2: ? 上面先配置了handler,刚才说过chain也是一种特别的handler。所以用handler标签配置chain,然后在chain标签中 用handler的type引用hchain,最好在responseFlow标签中用chain引用上面配置好的chain。 注意:chain标签中只能配置handler、chain这2种元素,chain里面可以嵌套配置chain; ? 3、发布wsdd配置过chain的WebService java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/AxisWebService/services/AdminService deployChain.wsdd 在浏览器中请求:http://localhost:8080/AxisWebService/servlet/AxisServlet 就可以看到发布的服务了。 ? 4、编写客户端代码,请求刚才发布的WebService。客户端的代码和上面的HelloWorldWSDDClient几乎引用,只是请求的服务换成刚才我们发布的那个服务路径就可以了。运行后服务器端控制台效果如下: state: null,count: 1,requestCount: 1 state: null,RESPONSE_COUNT: 1 state: null,count: 2,requestCount: 2 state: null,RESPONSE_COUNT: 2 作者:hoojo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |