我正在两台JBoss服务器上设置JMS请求答复。 在客户端中,我使用camel-jms和Fuse路由来创建呼叫。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech.Synthesis;
using System.Speech.Recognition;
namespace klfj
{
public partial class Form1 : Form
{
Speechsynthesizer synthesizer = new Speechsynthesizer();
Choices list = new Choices();
public Form1()
{
SpeechRecognitionEngine recognitionEngine = new SpeechRecognitionEngine();
string[] wordList = new string[]
{
"hello","how are you"
};
list.Add(wordList);
Grammar gr = new Grammar(new GrammarBuilder(list));
try
{
recognitionEngine.RequestRecognizerupdate();
recognitionEngine.LoadGrammar(gr);
recognitionEngine.SpeechRecognized += recognitionEngine_SpeechRecognized;
recognitionEngine.SetInputToDefaultAudioDevice();
recognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
} catch
{
return;
}
synthesizer.SelectVoiceByHints(VoiceGender.Female);
synthesizer.Speak("Starting Engine");
InitializeComponent();
}
public void say(String h)
{
synthesizer.Speak(h);
}
private void recognitionEngine_SpeechRecognized(object sender,SpeechRecognizedEventArgs e)
{
String r = e.Result.Text;
if(r == "hello")
{
say("Hi");
}
}
}
}
基本上,它将创建临时队列并发送到服务器。
在服务器中,我创建了.setExchangePattern(ExchangePattern.InOut)
.to(camelContext.getEndpoint(JMS_BEANID,JmsQueueEndpoint.class))
的实现以侦听消息。
从调试视图MessageListener
返回message.getJMSReplyTo()
的实例。但是,当我尝试检查activeMQTemporaryQueue
时,它将返回message.getJMSReplyTo() instanceof activeMQTemporaryQueue
。我尝试自己创建false
,支票会按预期返回activeMQTemporaryQueue
,例如:
true
客户端和服务器位于两个不同的Maven项目中(两次战争,部署在不同的服务器上,相同的工作区)。
我不知道发生了什么。你有什么建议吗?