2017-01-24 13 views
0

Я пытаюсь отправить сообщение на сервер ActiveMQ с моим клиентским приложением, написанным на C# .NET. , У меня есть XML-сообщения, которые я преобразовал в поток Zip и пытаюсь отправить.Не удалось извлечь тело из-за: javax.jms.JMSException: Не удалось создать тело из байта (Не удалось извлечь отправленный Zip-файл в ActiveMQ)

public IMessage SendMessage(string mqUri, string brokerUri, MemoryStream message, string username, string password) 
    { 
     Uri connecturi = new Uri(mqUri); 

     IConnectionFactory factory = new NMSConnectionFactory(connecturi); 

     using (IConnection connection = factory.CreateConnection(username, password)) 
     using (ISession session = connection.CreateSession()) 
     { 
      IDestination destination = SessionUtil.GetDestination(session, brokerUri); 

      using (IMessageProducer producer = session.CreateProducer(destination)) 
      { 
       connection.Start(); 
       IBytesMessage request = session.CreateBytesMessage(message.ToArray()); 
       producer.Send(request); 

       return request; 
      } 
     } 
    } 

На стороне сервера при разборе данных получили исключение, как:

исполнения JMS сообщения слушателя не удалось. Caused by: [org.apache.camel.RuntimeCamelException - Не удалось извлечь тело из-за: javax.jms.JMSException: Не удалось создать тело из байтов. Причина: java.io.StreamCorruptedException: недопустимый заголовок потока: 00010000. Сообщение: ActiveMQObjectMessage.

Когда я отладки кода и установить точку останова, есть исключение на Bodylength и содержание говоря «request.Content» бросил исключение типа «Apache.NMS.MessageNotReadableException»

enter image description here

Есть ли специальное преобразование zip для отправки сообщения на сервере ActiveMQ? Пожалуйста помоги. Благодаря

+0

Почему преобразование xml в zip ?? можете ли вы открыть zip-файл с помощью любых zip-инструментов? –

ответ

0

Проблема преобразования ЗИП MemoryStream, Позже я обнаружил, что необходимо преобразовать XML-файл в zipstream не почтовый файл.

public static MemoryStream CreateZipStream() 
    { 
     using (ZipFile zip = new ZipFile()) 
     { 
      MemoryStream outputStream = new MemoryStream(); 
      outputStream.Seek(0, SeekOrigin.Begin); 
      string filePath = 
       @"C:\YourXml.xml"; 
      zip.AddFile(filePath); 
      zip.Save(outputStream); 
      return outputStream; 
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^