Package org.apache.wsif.format.jms

Examples of org.apache.wsif.format.jms.JMSFormatHandler


                javax.xml.namespace.QName partQName =
                    new javax.xml.namespace.QName(
                        fieldMessageModel.getQName().getNamespaceURI(),
                        partModel.getName());

                JMSFormatHandler fh = getFormatHandler(partName);

                if (fh != null) {
                    fh.setPartQName(partQName);
                    fh.setObjectPart(parts.get(partName));
                    fh.write(message);
                } else {
                    // No format handler
                    Object part = parts.get(partName);
                    // Check to see if it is Serializable.
                    // If so, serialize it
                    try {
                        message.setObject((java.io.Serializable) part);
                    } catch (ClassCastException e) {
                        Trc.exception(e);
                        throw new WSIFException("Unable to serialize a part");
                    }
                }
            } else {
                // Use a hash map to hold the objects
                java.util.HashMap result = new java.util.HashMap();
                for (int i = 0; i < partNames.length; i++) {
                    String partName = partNames[i];

                    javax.wsdl.Part partModel =
                        fieldMessageModel.getPart(partName);

                    javax.xml.namespace.QName partQName =
                        new javax.xml.namespace.QName(
                            fieldMessageModel.getQName().getNamespaceURI(),
                            partModel.getName());

                    JMSFormatHandler fh = getFormatHandler(partName);

                    if (fh != null) {
                        fh.setPartQName(partQName);
                        fh.setObjectPart(parts.get(partName));
                        fh.write(message);
                        result.put(partName, message.getObject());
                    } else {
                        // No format handler
                        Object part = parts.get(partName);
                        // Check to see if it is Serializable.
View Full Code Here


                        // Get the contents
                        String partText = os.toString();

                        javax.wsdl.Part partModel =
                            fieldMessageModel.getPart(partName);
                        JMSFormatHandler fh = getFormatHandler(partName);

                        if (fh != null) {

                            fh.setPartQName(
                                new javax.xml.namespace.QName(
                                    fieldMessageModel
                                        .getQName()
                                        .getNamespaceURI(),
                                    partModel.getName()));

                            message.setText(partText);
                            fh.read(message);
                            //fh.setObjectPart(n);

                            setObjectPart(partName, fh.getObjectPart());

                            // ?? Do I want to store the format handler instead???
                            //partToFHMap.put(partKey, formatHandler);

                        } else {
                            // No format handler - pass the part contents directly
                            setObjectPart(partName, partText);
                        }
                    }
                }

                // Reset the message to original text
                message.setText(text);
            }
        } catch (JMSException e) {
            Trc.exception(e);
            throw new WSIFException("Error in read.", e);
        } catch (javax.xml.parsers.ParserConfigurationException e) {
            Trc.exception(e);
            throw new WSIFException("Error in read.", e);
        } catch (Exception e) {
            Trc.exception(e);
            // For all other exceptions ignore since it is likely due to parsing of a non-XML document
        }

        try {
            if (!wsifFormat) {
                // Unknown format - either XML or Text
                // Pass the contents of the message to each part of the message model
                Object[] partNames =
                    fieldMessageParts != null
                        ? fieldMessageParts.toArray()
                        : fieldMessageModel.getParts().keySet().toArray();

                // should only be one part
                if (partNames.length != 1)
                    throw new WSIFException(
                        "There should only be one part defined in "
                            + fieldMessageModel.getQName().getLocalPart());

                String partName = partNames[0].toString();

                javax.wsdl.Part partModel = fieldMessageModel.getPart(partName);
                JMSFormatHandler fh = getFormatHandler(partName);

                if (fh != null) {
                    fh.setPartQName(
                        new javax.xml.namespace.QName(
                            fieldMessageModel.getQName().getNamespaceURI(),
                            partModel.getName()));
                    fh.read(message);

                    setObjectPart(partName, fh.getObjectPart());

                    // ?? Do I want to store the format handler instead???
                    //partToFHMap.put(partKey, formatHandler);

                } else {
View Full Code Here

                    String partName = partNames[i].toString();

                    if (map.containsKey(partName)) {
                        javax.wsdl.Part partModel =
                            fieldMessageModel.getPart(partName);
                        JMSFormatHandler fh = getFormatHandler(partName);

                        if (fh != null) {

                            fh.setPartQName(
                                new javax.xml.namespace.QName(
                                    fieldMessageModel
                                        .getQName()
                                        .getNamespaceURI(),
                                    partModel.getName()));
                            // Should be serializable since retrieved it over the wire
                            message.setObject(
                                (java.io.Serializable) map.get(partName));
                            fh.read(message);
                            //fh.setObjectPart(map.get(partName));
                            setObjectPart(partName, fh.getObjectPart());

                            // ?? Do I want to store the format handler instead???
                            //partToFHMap.put(partKey, formatHandler);

                        } else {
                            // No format handler defined
                            setObjectPart(partName, map.get(partName));
                        }
                    }

                }
                // Reset the message to original text
                message.setObject((java.io.Serializable) object);
            } else {
                // It is an unknown format
                // Pass the contents of the message to each part of the message model

                // should only be one part
                if (partNames.length != 1)
                    throw new WSIFException(
                        "There should only be one part defined in "
                            + fieldMessageModel.getQName().getLocalPart()
                            + " or the JMS ObjectMessage should be a Map of "
                            + "all the parts in the message");

                String partName = partNames[0].toString();

                javax.wsdl.Part partModel = fieldMessageModel.getPart(partName);
                JMSFormatHandler fh = getFormatHandler(partName);

                if (fh != null) {
                    fh.setPartQName(
                        new javax.xml.namespace.QName(
                            fieldMessageModel.getQName().getNamespaceURI(),
                            partModel.getName()));
                    fh.read(message);

                    setObjectPart(partName, fh.getObjectPart());

                    // ?? Do I want to store the format handler instead???
                    //partToFHMap.put(partKey, formatHandler);

                } else {
View Full Code Here

    private JMSFormatHandler getFormatHandler(String partName) {
        Trc.entry(this, partName);

        javax.wsdl.Part partModel = fieldMessageModel.getPart(partName);
        JMSFormatHandler fh = null;

        javax.xml.namespace.QName partType = partModel.getTypeName();
        if (partType == null)
            partType = partModel.getElementName();
View Full Code Here

                javax.xml.namespace.QName partQName =
                    new javax.xml.namespace.QName(
                        fieldMessageModel.getQName().getNamespaceURI(),
                        partModel.getName());

                JMSFormatHandler fh = getFormatHandler(partName);

                if (fh != null) {
                    fh.setPartQName(partQName);
                    fh.setObjectPart(parts.get(partName));
                    fh.write(message);
                } else {
                    // No format handler
                    Object part = parts.get(partName);
                    message.setText(part.toString());
                }
            } else {
                // Use my own XML Structure 
                // Prepare the stream writers and the serializers
                java.io.ByteArrayOutputStream os =
                    new java.io.ByteArrayOutputStream();
                java.io.OutputStreamWriter writer =
                    new java.io.OutputStreamWriter(os);

                org.apache.xml.serialize.OutputFormat format =
                    new org.apache.xml.serialize.OutputFormat();
                org.apache.xml.serialize.XMLSerializer serializer =
                    new org.apache.xml.serialize.XMLSerializer(writer, format);

                String namespace = "";

                // Start the document     
                serializer.startDocument();

                // Add the message tag
                serializer.startElement(
                    namespace,
                    fieldMessageModel.getQName().getLocalPart(),
                    "",
                    new org.xml.sax.helpers.AttributesImpl());

                // Cycle the parts, invoking each format handler
                for (int i = 0; i < partNames.length; i++) {
                    String partName = partNames[i];

                    // Add a beginning tag
                    serializer.startElement(
                        namespace,
                        partName,
                        "",
                        new org.xml.sax.helpers.AttributesImpl());

                    javax.wsdl.Part partModel =
                        fieldMessageModel.getPart(partName);
                    javax.xml.namespace.QName partQName =
                        new javax.xml.namespace.QName(
                            fieldMessageModel.getQName().getNamespaceURI(),
                            partModel.getName());

                    // Determine the format handler
                    JMSFormatHandler fh = getFormatHandler(partName);

                    if (fh != null) {
                        fh.setPartQName(partQName);
                        fh.setObjectPart(parts.get(partName));

                        // Send the message since it is the native format
                        // Reinitialize the message content
                        message.setText("");
                        fh.write(message);
                        char[] c = message.getText().toCharArray();
                        serializer.characters(c, 0, c.length);
                    } else {
                        // No format handler
                        Object part = parts.get(partName);
View Full Code Here

TOP

Related Classes of org.apache.wsif.format.jms.JMSFormatHandler

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.