1 22 package org.jboss.test.webservice.jbws626; 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.Name ; 32 import javax.xml.soap.SOAPBody ; 33 import javax.xml.soap.SOAPElement ; 34 import javax.xml.soap.SOAPException ; 35 import javax.xml.soap.SOAPFactory ; 36 import javax.xml.soap.SOAPMessage ; 37 38 39 public class ServerHandler extends GenericHandler 40 { 41 public QName [] getHeaders() 42 { 43 return new QName [] {}; 44 } 45 46 public boolean handleRequest(MessageContext msgContext) 47 { 48 try 49 { 50 SOAPFactory factory = SOAPFactory.newInstance(); 51 52 SOAPMessage soapMessage = ((SOAPMessageContext )msgContext).getMessage(); 53 SOAPBody soapBody = soapMessage.getSOAPBody(); 54 SOAPElement soapElement = (SOAPElement )soapBody.getChildElements().next(); 55 56 Name expName = factory.createName("echoArray", "ns1", "http://org.jboss.test.webservice/jbws626"); 58 Name wasName = soapElement.getElementName(); 59 if (expName.equals(wasName)) 60 { 61 soapElement = (SOAPElement )soapElement.getChildElements().next(); 63 expName = factory.createName("arrayOfValueObj_1"); 64 wasName = soapElement.getElementName(); 65 assertElementName(expName, wasName); 66 67 soapElement = (SOAPElement )soapElement.getChildElements().next(); 69 expName = factory.createName("value"); 70 wasName = soapElement.getElementName(); 71 assertElementName(expName, wasName); 72 73 Iterator arrayItems = soapElement.getChildElements(); 75 soapElement = (SOAPElement )arrayItems.next(); 76 expName = factory.createName("s1"); 77 wasName = soapElement.getElementName(); 78 assertElementName(expName, wasName); 79 80 soapElement = (SOAPElement )arrayItems.next(); 82 expName = factory.createName("s2"); 83 wasName = soapElement.getElementName(); 84 assertElementName(expName, wasName); 85 } 86 } 87 catch (SOAPException ex) 88 { 89 throw new JAXRPCException (ex); 90 } 91 return true; 92 } 93 94 public boolean handleResponse(MessageContext msgContext) 95 { 96 return true; 97 } 98 99 private void assertElementName(Name expName, Name wasName) 100 { 101 if (expName.equals(wasName) == false) 102 throw new JAXRPCException ("Expected element name '" + expName + "', but was '" + wasName + "'"); 103 } 104 } 105 | Popular Tags |