You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2004/03/23 15:29:50 UTC

cvs commit: ws-axis/java/src/org/apache/axis/transport/jms JMSSender.java SimpleJMSWorker.java

dims        2004/03/23 06:29:50

  Modified:    java/src/org/apache/axis/transport/jms JMSSender.java
                        SimpleJMSWorker.java
  Log:
  Fix for AXIS-1242 - Multipart messages using jms transport lack a contentType setting and fail to parse
  
  Revision  Changes    Path
  1.8       +16 -0     ws-axis/java/src/org/apache/axis/transport/jms/JMSSender.java
  
  Index: JMSSender.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/transport/jms/JMSSender.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JMSSender.java	25 Feb 2004 14:02:46 -0000	1.7
  +++ JMSSender.java	23 Mar 2004 14:29:49 -0000	1.8
  @@ -20,6 +20,7 @@
   import org.apache.axis.Message;
   import org.apache.axis.MessageContext;
   import org.apache.axis.handlers.BasicHandler;
  +import org.apache.axis.attachments.Attachments;
   
   import javax.jms.Destination;
   import java.io.ByteArrayOutputStream;
  @@ -69,6 +70,21 @@
               msgContext.getRequestMessage().writeTo(out);
   
               HashMap props = createSendProperties(msgContext);
  +
  +            // If the request message contains attachments, set
  +            // a contentType property to go in the outgoing message header
  +            String ret = null;
  +            Message message = msgContext.getRequestMessage();
  +            Attachments mAttachments = message.getAttachmentsImpl();
  +            if (mAttachments != null && 0 != mAttachments.getAttachmentCount()) 
  +            {
  +                String contentType = mAttachments.getContentType();
  +                if(contentType != null && !contentType.trim().equals("")) 
  +                {
  +                    props.put("contentType", contentType);
  +                }
  +            }
  +
               boolean waitForResponse = true;
               if(msgContext.containsProperty(JMSConstants.WAIT_FOR_RESPONSE))
                   waitForResponse =
  
  
  
  1.7       +23 -1     ws-axis/java/src/org/apache/axis/transport/jms/SimpleJMSWorker.java
  
  Index: SimpleJMSWorker.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/transport/jms/SimpleJMSWorker.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SimpleJMSWorker.java	25 Feb 2004 14:02:46 -0000	1.6
  +++ SimpleJMSWorker.java	23 Mar 2004 14:29:49 -0000	1.7
  @@ -80,7 +80,29 @@
   
           // create the msg and context and invoke the server
           AxisServer server = SimpleJMSListener.getAxisServer();
  -        Message msg = new Message(in);
  +
  +        // if the incoming message has a contentType set,
  +        // pass it to my new Message
  +        String contentType = null;
  +        try 
  +        { 
  +            contentType = message.getStringProperty("contentType");
  +        } 
  +        catch(Exception e) 
  +        { 
  +            e.printStackTrace();
  +        }
  +
  +        Message msg = null;
  +        if(contentType != null && !contentType.trim().equals("")) 
  +        {
  +            msg = new Message(in, true, contentType, null);
  +        } 
  +        else 
  +        {
  +            msg = new Message(in);
  +        }
  +
           MessageContext  msgContext = new MessageContext(server);
           msgContext.setRequestMessage( msg );
           try