我正在尝试在单个ActiveMQ主题上使用jms:publish-subscribe-channel到pub / sub。我能够在通道上接收来自ActiveMQ的消息,但是当我发布到通道时,消息体是空的(当另一个应用程序收听ActiveMQ主题时)。我能够使用spring-integration-samples-> basic-> jms重新创建问题。我修改了outboundChannelAdapter.xml以使用jms:publish-subscribe-channel而不是jms:outbound-channel-adapter。是否需要另一个步骤才能发布简单的字符串消息?这是我的代码更改为outboundChannelAdapter.xml:
<stream:stdin-channel-adapter id="stdin" channel="stdinToJmsoutChannel"/>
<jms:publish-subscribe-channel id="stdinToJmsoutChannel" topic="requestTopic" />
<stream:stdout-channel-adapter id="stdout" channel="stdinToJmsoutChannel" append-newline="true"/>
答案 0 :(得分:0)
我不确定你的意思是“邮件正文为空”。
我对样本进行了完全相同的更改,它对我来说很好......
using System;
using System.Windows.Forms;
using EnvDTE80;
using System.Runtime.InteropServices;
namespace TestWindowsApp
{
static class Program
{
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Type type = Type.GetTypeFromProgID("VisualStudio.DTE.14.0");
DTE2 dte = (DTE2)Activator.CreateInstance(type, true);
dte.MainWindow.Visible = true;
dte.UserControl = true;
SetForegroundWindow((IntPtr)dte.MainWindow.HWnd);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
我必须在命令行中添加Please type something and hit <enter>
foo
foo
,因为activemq需要为类添加白名单(整个消息在jms支持的通道中被序列化)。