1 package org.objectweb.celtix.systest.handlers; 2 3 4 import java.util.ArrayList ; 5 import java.util.List ; 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 <String > ping() { 25 26 try { 27 List <String > 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 e) { 34 e.printStackTrace(); 35 36 } 37 return null; 38 } 39 40 public final void pingOneWay() { 41 } 42 43 public final List <String > pingWithArgs(String handlerCommand) throws PingException { 44 45 List <String > ret = new ArrayList <String >(); 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 ("unchecked") 64 private List <String > getHandlersInfo(MessageContext ctx) { 65 List <String > ret = (List <String >)ctx.get("handler.info"); 66 if (ret == null) { 67 ret = new ArrayList <String >(); 68 } 69 return ret; 70 } 71 72 } 73 | Popular Tags |