1 22 package org.jboss.test.webservice.jbws424; 23 24 import java.util.Iterator ; 25 26 import javax.xml.namespace.QName ; 27 import javax.xml.rpc.JAXRPCException ; 28 import javax.xml.rpc.handler.GenericHandler ; 29 import javax.xml.rpc.handler.MessageContext ; 30 import javax.xml.rpc.handler.soap.SOAPMessageContext ; 31 import javax.xml.soap.Detail ; 32 import javax.xml.soap.Name ; 33 import javax.xml.soap.SOAPBody ; 34 import javax.xml.soap.SOAPElement ; 35 import javax.xml.soap.SOAPException ; 36 import javax.xml.soap.SOAPFactory ; 37 import javax.xml.soap.SOAPFault ; 38 import javax.xml.soap.SOAPMessage ; 39 40 public class TestHandler extends GenericHandler 41 { 42 public QName [] getHeaders() 43 { 44 return new QName [] {}; 45 } 46 47 public boolean handleResponse(MessageContext msgContext) 48 { 49 try 50 { 51 SOAPFactory factory = SOAPFactory.newInstance(); 52 53 SOAPMessage soapMessage = ((SOAPMessageContext )msgContext).getMessage(); 54 SOAPBody soapBody = soapMessage.getSOAPBody(); 55 SOAPFault soapFault = soapBody.getFault(); 56 Detail detail = soapFault.getDetail(); 57 SOAPElement soapElement = (SOAPElement )detail.getChildElements().next(); 58 Iterator itParams = soapElement.getChildElements(); 59 60 Name elName = ((SOAPElement )itParams.next()).getElementName(); 61 if (elName.equals(factory.createName("description")) == false) 62 throw new IllegalStateException ("Unexpected element: " + elName); 63 64 elName = ((SOAPElement )itParams.next()).getElementName(); 65 if (elName.equals(factory.createName("shortDescr")) == false) 66 throw new IllegalStateException ("Unexpected element: " + elName); 67 68 if (itParams.hasNext()) 69 { 70 elName = ((SOAPElement )itParams.next()).getElementName(); 71 throw new IllegalStateException ("Unexpected extra element: " + elName); 72 } 73 74 return true; 75 } 76 catch (SOAPException e) 77 { 78 throw new JAXRPCException (e.toString(), e); 79 } 80 } 81 } 82 | Popular Tags |