1 22 package org.jboss.test.webservice.jbws706; 23 24 import javax.xml.namespace.QName ; 25 import javax.xml.rpc.handler.GenericHandler ; 26 import javax.xml.rpc.handler.MessageContext ; 27 import javax.xml.rpc.handler.soap.SOAPMessageContext ; 28 import javax.xml.soap.Name ; 29 import javax.xml.soap.SOAPBody ; 30 import javax.xml.soap.SOAPElement ; 31 import javax.xml.soap.SOAPException ; 32 import javax.xml.soap.SOAPFactory ; 33 import javax.xml.soap.SOAPMessage ; 34 35 public class ClientHandler extends GenericHandler 36 { 37 private static final String TARGET_NAMESPACE = "http://org.jboss.test.webservice/jbws706/tns"; 38 39 protected QName [] headers; 40 41 public QName [] getHeaders() 42 { 43 return headers; 44 } 45 46 public boolean handleResponse(MessageContext msgContext) 47 { 48 try 49 { 50 SOAPMessageContext soapContext = (SOAPMessageContext )msgContext; 51 SOAPMessage soapMessage = soapContext.getMessage(); 52 SOAPBody soapBody = soapMessage.getSOAPBody(); 53 SOAPElement rpcElement = (SOAPElement )soapBody.getChildElements().next(); 54 55 SOAPFactory factory = SOAPFactory.newInstance(); 56 Name rpcName = factory.createName("processDescrResponse", "ns1", TARGET_NAMESPACE); 57 if (rpcName.equals(rpcElement.getElementName()) == false) 58 throw new IllegalStateException ("Invalid rpc name: " + rpcElement.getElementName()); 59 60 SOAPElement paramElement = (SOAPElement )rpcElement.getChildElements().next(); 61 Name paramName = factory.createName("processDescrReturn"); 62 if (paramName.equals(paramElement.getElementName()) == false) 63 throw new IllegalStateException ("Invalid param name: " + paramElement.getElementName()); 64 65 return true; 66 } 67 catch (SOAPException e) 68 { 69 throw new IllegalArgumentException (e.toString()); 70 } 71 } 72 } 73 | Popular Tags |