Search in sources :

Example 21 with SOAPElement

use of jakarta.xml.soap.SOAPElement in project metro-jax-ws by eclipse-ee4j.

the class SOAPTestHandler method handleMessage.

public boolean handleMessage(SOAPMessageContext smc) {
    try {
        SOAPMessage message = smc.getMessage();
        SOAPBody body = message.getSOAPBody();
        SOAPElement paramElement = (SOAPElement) body.getFirstChild().getFirstChild();
        int number = Integer.parseInt(paramElement.getValue());
        if (number == THROW_RUNTIME_EXCEPTION) {
            throw new RuntimeException("EXPECTED EXCEPTION");
        } else if (number == THROW_PROTOCOL_EXCEPTION) {
            throw new ProtocolException("EXPECTED EXCEPTION");
        } else if (number == THROW_SOAPFAULT_EXCEPTION) {
        // todo
        }
        paramElement.setValue(String.valueOf(++number));
    } catch (SOAPException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    }
    return true;
}
Also used : ProtocolException(jakarta.xml.ws.ProtocolException) SOAPBody(jakarta.xml.soap.SOAPBody) SOAPException(jakarta.xml.soap.SOAPException) SOAPElement(jakarta.xml.soap.SOAPElement) SOAPMessage(jakarta.xml.soap.SOAPMessage)

Example 22 with SOAPElement

use of jakarta.xml.soap.SOAPElement in project metro-jax-ws by eclipse-ee4j.

the class ProviderImpl method invoke.

/* 
     */
public Source invoke(Source msg) {
    if (!isInjectionDone()) {
        throw new WebServiceException("Injection is not done");
    }
    // Test if we got the correct SOAPMessage that has handler changes
    try {
        MessageFactory fact = MessageFactory.newInstance();
        SOAPMessage soap = fact.createMessage();
        soap.getSOAPPart().setContent(msg);
        SOAPBody body = soap.getSOAPBody();
        Iterator i = body.getChildElements();
        SOAPElement elem = (SOAPElement) i.next();
        QName name = elem.getElementQName();
        QName exp = new QName("urn:test:types", "MyVoidTest");
        if (!exp.equals(name)) {
            throw new WebServiceException("Handler changes aren't reflected");
        }
    } catch (SOAPException e) {
        throw new WebServiceException("Got Incorrect Source");
    }
    printContext();
    String content = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"><soapenv:Body>  <VoidTestResponse xmlns=\"urn:test:types\"></VoidTestResponse></soapenv:Body></soapenv:Envelope>";
    Source source = new StreamSource(new ByteArrayInputStream(content.getBytes()));
    return source;
}
Also used : SOAPBody(jakarta.xml.soap.SOAPBody) WebServiceException(jakarta.xml.ws.WebServiceException) MessageFactory(jakarta.xml.soap.MessageFactory) ByteArrayInputStream(java.io.ByteArrayInputStream) QName(javax.xml.namespace.QName) SOAPException(jakarta.xml.soap.SOAPException) StreamSource(javax.xml.transform.stream.StreamSource) Iterator(java.util.Iterator) SOAPElement(jakarta.xml.soap.SOAPElement) SOAPMessage(jakarta.xml.soap.SOAPMessage) StreamSource(javax.xml.transform.stream.StreamSource) Source(javax.xml.transform.Source) InputSource(org.xml.sax.InputSource)

Example 23 with SOAPElement

use of jakarta.xml.soap.SOAPElement in project metro-jax-ws by eclipse-ee4j.

the class SOAPTestHandler method handleMessage.

public boolean handleMessage(SOAPMessageContext smc) {
    try {
        SOAPMessage message = smc.getMessage();
        SOAPBody body = message.getSOAPBody();
        SOAPElement paramElement = (SOAPElement) body.getFirstChild();
        int number = Integer.parseInt(paramElement.getValue());
        paramElement.setValue(String.valueOf(++number));
    } catch (SOAPException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    }
    return true;
}
Also used : SOAPBody(jakarta.xml.soap.SOAPBody) SOAPException(jakarta.xml.soap.SOAPException) SOAPElement(jakarta.xml.soap.SOAPElement) SOAPMessage(jakarta.xml.soap.SOAPMessage)

Example 24 with SOAPElement

use of jakarta.xml.soap.SOAPElement in project metro-jax-ws by eclipse-ee4j.

the class TestHandler method handleMessage.

public boolean handleMessage(SOAPMessageContext context) {
    try {
        SOAPMessageContext smc = (SOAPMessageContext) context;
        SOAPMessage message = smc.getMessage();
        SOAPBody body = message.getSOAPBody();
        SOAPElement paramElement = (SOAPElement) body.getFirstChild().getFirstChild();
        int number = Integer.parseInt(paramElement.getValue());
        paramElement.setValue(String.valueOf(++number));
    } catch (SOAPException e) {
        e.printStackTrace();
    }
    return true;
}
Also used : SOAPBody(jakarta.xml.soap.SOAPBody) SOAPMessageContext(jakarta.xml.ws.handler.soap.SOAPMessageContext) SOAPException(jakarta.xml.soap.SOAPException) SOAPElement(jakarta.xml.soap.SOAPElement) SOAPMessage(jakarta.xml.soap.SOAPMessage)

Aggregations

SOAPElement (jakarta.xml.soap.SOAPElement)24 SOAPMessage (jakarta.xml.soap.SOAPMessage)12 SOAPException (jakarta.xml.soap.SOAPException)10 SOAPBody (jakarta.xml.soap.SOAPBody)9 Name (jakarta.xml.soap.Name)7 SOAPHeaderElement (jakarta.xml.soap.SOAPHeaderElement)6 MessageFactory (jakarta.xml.soap.MessageFactory)5 QName (javax.xml.namespace.QName)5 Detail (jakarta.xml.soap.Detail)3 SOAPEnvelope (jakarta.xml.soap.SOAPEnvelope)3 SOAPFault (jakarta.xml.soap.SOAPFault)3 Iterator (java.util.Iterator)3 SAAJFactory (com.sun.xml.ws.api.message.saaj.SAAJFactory)2 StreamMessage (com.sun.xml.ws.message.stream.StreamMessage)2 SOAPFactory (jakarta.xml.soap.SOAPFactory)2 SOAPPart (jakarta.xml.soap.SOAPPart)2 ProtocolException (jakarta.xml.ws.ProtocolException)2 WebServiceException (jakarta.xml.ws.WebServiceException)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2 StringReader (java.io.StringReader)2