KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > systest > handlers > HandlerTestImpl


1 package org.objectweb.celtix.systest.handlers;
2
3
4 import java.util.ArrayList JavaDoc;
5 import java.util.List JavaDoc;
6 import javax.annotation.Resource;
7 import javax.jws.HandlerChain;
8 import javax.jws.WebService;
9 import javax.xml.ws.WebServiceContext;
10 import javax.xml.ws.handler.MessageContext;
11 import org.objectweb.handler_test.HandlerTest;
12 import org.objectweb.handler_test.PingException;
13 import org.objectweb.handler_test.types.PingFaultDetails;
14
15 @WebService(serviceName = "HandlerTestService",
16             portName = "SoapPort",
17             endpointInterface = "org.objectweb.handler_test.HandlerTest",
18             targetNamespace = "http://objectweb.org/handler_test")
19 @HandlerChain(file = "./handlers.xml", name = "TestHandlerChain")
20 public class HandlerTestImpl implements HandlerTest {
21
22     private WebServiceContext context;
23         
24     public final List JavaDoc<String JavaDoc> ping() {
25
26         try {
27             List JavaDoc<String JavaDoc> handlerInfoList = getHandlersInfo(context.getMessageContext());
28             handlerInfoList.add("servant");
29             context.getMessageContext().remove("handler.info");
30             System.out.println(">> servant returning list: " + handlerInfoList);
31             return handlerInfoList;
32
33         } catch (Exception JavaDoc e) {
34             e.printStackTrace();
35
36         }
37         return null;
38     }
39
40     public final void pingOneWay() {
41     }
42
43     public final List JavaDoc<String JavaDoc> pingWithArgs(String JavaDoc handlerCommand) throws PingException {
44
45         List JavaDoc<String JavaDoc> ret = new ArrayList JavaDoc<String JavaDoc>();
46         ret.add(handlerCommand);
47         ret.addAll(getHandlersInfo(context.getMessageContext()));
48
49         if (handlerCommand.contains("throw exception")) {
50             PingFaultDetails details = new PingFaultDetails();
51             details.setDetail(ret.toString());
52             throw new PingException("from servant", details);
53         }
54
55         return ret;
56     }
57
58
59     @Resource public void setWebServiceContext(WebServiceContext ctx) {
60         context = ctx;
61     }
62
63     @SuppressWarnings JavaDoc("unchecked")
64     private List JavaDoc<String JavaDoc> getHandlersInfo(MessageContext ctx) {
65         List JavaDoc<String JavaDoc> ret = (List JavaDoc<String JavaDoc>)ctx.get("handler.info");
66         if (ret == null) {
67             ret = new ArrayList JavaDoc<String JavaDoc>();
68         }
69         return ret;
70     }
71
72 }
73
Popular Tags