こんにちは、アプリケーション ログに以下の例外スタック トレースが記録されています。
20/09/2013 22.26.49 - Caught exception in Exception Strategy: Connection and domain type do not match
java.lang.IllegalArgumentException: Connection and domain type do not match
at org.mule.transport.jms.Jms102bSupport.createSession(Jms102bSupport.java:108)
at org.mule.transport.jms.JmsConnector.getSession(JmsConnector.java:579)
at org.mule.transport.jms.JmsConnector.getSession(JmsConnector.java:558)
at org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:141)
at org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:73)
at org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1895)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:765)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1288)
at org.mule.work.ScheduleWorkExecutor.doExecute(ScheduleWorkExecutor.java:41)
意味がよく理解できませんが、
誰かが接続とドメインタイプが一致しないということの意味を説明してもらえますか
おそらく、それが発生する可能性のあるシナリオの例です。
データは、設定されたミュール アウトバウンドを使用して送信されます
<multicasting-router>
<jms:outbound-endpoint topic="SAMPLEMESSAGES" transformer-refs="DomToXml ObjectToJms" connector-ref="jmsConnector" />
</multicasting-router>
コネクタの構成はここにありますが、何らかの理由でここに xml を貼り付けることができません
アーチャーが述べたように、私はactiveMQソースコードを見て、ここに貼り付けただけです
@Override
public Session createSession(Connection connection, boolean topic, boolean transacted,
int ackMode, boolean noLocal) throws JMSException
{
if (connection == null)
{
throw new IllegalArgumentException("Connection is null");
}
if (topic && connection instanceof TopicConnection)
{
return ((TopicConnection) connection).createTopicSession(noLocal, ackMode);
}
else if (connection instanceof QueueConnection)
{
// for transacted sessions the ackMode is always ignored, but
// set it for readability (SESSION_TRANSACTION is recommented
// for this case).
return ((QueueConnection) connection).createQueueSession(
transacted, (transacted ? Session.SESSION_TRANSACTED : ackMode));
}
else
{
throw new IllegalArgumentException("Connection and domain type do not match, connection is of type " + connection.getClass().getName());
}
}
どのような状況で着信クライアント接続が topicConnection または queueConnection ではないか、どのクライアント コードを記述して例外を発生させることができるかを理解したい
ありがとう