由于以下原因无法提取 body:javax.jms.JMSException:无法从字节构建 body(无法将已发送的 Zip 文件提取到 ActiveMQ)
Failed to extract body due to: javax.jms.JMSException: Failed to build body from byte(Failed to extract sent Zip file to ActiveMQ)
我正在尝试使用我在 C# .NET 上编写的客户端应用程序向 ActiveMQ 服务器发送消息。我有 XML 条消息,我已将其转换为 Zip 流并尝试发送。
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 消息侦听器执行失败。原因:[org.apache.camel.RuntimeCamelException - 无法提取 body,原因是:javax.jms.JMSException:无法从字节构建 body。原因:java.io.StreamCorruptedException:无效流 header:00010000。消息:ActiveMQObjectMessage。
当我调试代码并设置断点时,Bodylength 和内容出现异常 'request.Content' 抛出了 'Apache.NMS.MessageNotReadableException' 类型的异常
在ActiveMQ 服务器上发送消息是否有任何特殊的zip 转换?请帮忙。谢谢
问题是将 zip 转换为 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;
}
}
我正在尝试使用我在 C# .NET 上编写的客户端应用程序向 ActiveMQ 服务器发送消息。我有 XML 条消息,我已将其转换为 Zip 流并尝试发送。
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 消息侦听器执行失败。原因:[org.apache.camel.RuntimeCamelException - 无法提取 body,原因是:javax.jms.JMSException:无法从字节构建 body。原因:java.io.StreamCorruptedException:无效流 header:00010000。消息:ActiveMQObjectMessage。
当我调试代码并设置断点时,Bodylength 和内容出现异常 'request.Content' 抛出了 'Apache.NMS.MessageNotReadableException' 类型的异常
在ActiveMQ 服务器上发送消息是否有任何特殊的zip 转换?请帮忙。谢谢
问题是将 zip 转换为 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;
}
}