Search in sources :

Example 6 with SOAPBuilder

use of org.apache.axis2.builder.SOAPBuilder in project wso2-axis2-transports by wso2.

the class MSMQUtil method setSOAPEnvelope.

public static void setSOAPEnvelope(Message message, MessageContext msgContext, String contentType) throws AxisFault {
    if (contentType == null) {
        // TODO;we only support text/plain
        contentType = "text/plain";
        if (log.isDebugEnabled()) {
            log.debug("No content type specified; assuming " + contentType);
        }
    }
    int index = contentType.indexOf(';');
    String type = index > 0 ? contentType.substring(0, index) : contentType;
    Builder builder = BuilderUtil.getBuilderFromSelector(type, msgContext);
    String messageBody = null;
    try {
        messageBody = message.getBodyAsString();
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if (builder == null) {
        if (log.isDebugEnabled()) {
            log.debug("No message builder found for type' " + type + ".Using SOAP builder");
        }
        builder = new SOAPBuilder();
    }
    OMElement documentElement;
    // TODO: we need to handle the message types separately. Assume text message builder format
    TextMessageBuilder textMessageBuilder;
    if (builder instanceof TextMessageBuilder) {
        textMessageBuilder = (TextMessageBuilder) builder;
    } else {
        textMessageBuilder = new TextMessageBuilderAdapter(builder);
    }
    documentElement = textMessageBuilder.processDocument(messageBody, contentType, msgContext);
    msgContext.setEnvelope(TransportUtils.createSOAPEnvelope(documentElement));
}
Also used : TextMessageBuilderAdapter(org.apache.axis2.format.TextMessageBuilderAdapter) SOAPBuilder(org.apache.axis2.builder.SOAPBuilder) Builder(org.apache.axis2.builder.Builder) TextMessageBuilder(org.apache.axis2.format.TextMessageBuilder) UnsupportedEncodingException(java.io.UnsupportedEncodingException) SOAPBuilder(org.apache.axis2.builder.SOAPBuilder) OMElement(org.apache.axiom.om.OMElement) TextMessageBuilder(org.apache.axis2.format.TextMessageBuilder)

Example 7 with SOAPBuilder

use of org.apache.axis2.builder.SOAPBuilder in project wso2-axis2-transports by wso2.

the class RabbitMQUtils method setSOAPEnvelope.

public static void setSOAPEnvelope(RabbitMQMessage message, MessageContext msgContext, String contentType) throws AxisFault {
    int index = contentType.indexOf(';');
    String type = index > 0 ? contentType.substring(0, index) : contentType;
    Builder builder = BuilderUtil.getBuilderFromSelector(type, msgContext);
    if (builder == null) {
        if (log.isDebugEnabled()) {
            log.debug("No message builder found for type '" + type + "'. Falling back to SOAP.");
        }
        builder = new SOAPBuilder();
    }
    OMElement documentElement;
    String charSetEnc = null;
    try {
        if (contentType != null) {
            charSetEnc = new ContentType(contentType).getParameter("charset");
        }
    } catch (ParseException ex) {
        log.debug("Parse error", ex);
    }
    msgContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
    documentElement = builder.processDocument(new ByteArrayInputStream(message.getBody()), contentType, msgContext);
    msgContext.setEnvelope(TransportUtils.createSOAPEnvelope(documentElement));
}
Also used : ContentType(javax.mail.internet.ContentType) ByteArrayInputStream(java.io.ByteArrayInputStream) SOAPBuilder(org.apache.axis2.builder.SOAPBuilder) Builder(org.apache.axis2.builder.Builder) SOAPBuilder(org.apache.axis2.builder.SOAPBuilder) OMElement(org.apache.axiom.om.OMElement) LongString(com.rabbitmq.client.LongString) ParseException(javax.mail.internet.ParseException)

Aggregations

OMElement (org.apache.axiom.om.OMElement)6 Builder (org.apache.axis2.builder.Builder)5 SOAPBuilder (org.apache.axis2.builder.SOAPBuilder)5 ContentType (javax.mail.internet.ContentType)4 ParseException (javax.mail.internet.ParseException)4 TextMessageBuilder (org.apache.axis2.format.TextMessageBuilder)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 InputStream (java.io.InputStream)2 HashMap (java.util.HashMap)2 XMLStreamException (javax.xml.stream.XMLStreamException)2 MessageContext (org.apache.axis2.context.MessageContext)2 DataSourceMessageBuilder (org.apache.axis2.format.DataSourceMessageBuilder)2 TextMessageBuilderAdapter (org.apache.axis2.format.TextMessageBuilderAdapter)2 LongString (com.rabbitmq.client.LongString)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 BytesMessage (javax.jms.BytesMessage)1 MapMessage (javax.jms.MapMessage)1 TextMessage (javax.jms.TextMessage)1