Я борюсь с небольшим доказательством концепции для функции, которая нам нужна для более крупного проекта.Аутентификация между Mule/Anypoint JMS и JBoss/Wildfly9?
На моей локальной машине у меня есть установка Wildfly 9 (с настройкой пользователя, пароля и группы). Я могу отправлять сообщения через HornetQ из небольшой Java-программы, и я могу играть с <security-enabled>
и пользователем/паролем и видеть, что он работает, или нет, как я ожидаю. Большой!
Однако, у меня есть простой поток Mule, который пытается отправить сообщение через исходящую конечную точку JMS - но это всегда терпит неудачу с «HQ119031: Не удается проверить пользователя: нулевой», хотя я (попробуйте) укажите имя. Я просто не могу понять, где и как указать пользователя/пароль, который я знаю (из программы Java), чтобы работать.
Я знаю, что у коллеги, который дал мне не очень много информации, что он уже вступил в контакт с поддержкой MuleSoft, которые говорят, что «они не знают о Wildfly в сочетании с Mule» и не могут Помогите.
Вот мой разъем и отливы:
<jms:connector name="Wildfly9JMSConnector"
jndiInitialFactory="org.jboss.naming.remote.client.InitialContextFactory"
jndiProviderUrl="http-remoting://127.0.0.1:8085"
connectionFactoryJndiName="jms/RemoteConnectionFactor"
jndiDestinations="true" forceJndiDestinations="true"
disableTemporaryReplyToDestinations="true"
username="inara"
password="whitefall"
doc:name="JMS" validateConnections="true">
</jms:connector>
<flow name="jbossconnectiontestFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/jbosstest" doc:name="HTTP" />
<set-payload value="Shiny!" doc:name="Set Payload" />
<logger message="1. payload: #[payload]" level="INFO" doc:name="Logger" />
<jms:outbound-endpoint exchange-pattern="request-response" queue="jms/queue/CoordReceive" connector-ref="Wildfly9JMSConnector" doc:name="JMS">
<jms:transaction action="BEGIN_OR_JOIN"/>
</jms:outbound-endpoint>
<set-payload value="JMS message sent." doc:name="Set Payload"/>
<logger message="2. payload: #[payload]" level="INFO" doc:name="Logger"/>
<catch-exception-strategy doc:name="Catch Emdxception Strategy">
<logger level="INFO" doc:name="Logger" />
</catch-exception-strategy>
</flow>
Частичная трассировка стеки:
ERROR 2015-10-20 16:53:01,948 [main] org.mule.retry.notifiers.ConnectNotifier: Failed to connect/reconnect: JmsConnector
{
name=Wildfly9JMSConnector
lifecycle=initialise
this=6540cf1d
numberOfConcurrentTransactedReceivers=4
createMultipleTransactedReceivers=true
connected=false
supportedProtocols=[jms]
serviceOverrides=<none>
}
. Root Exception was: HQ119031: Unable to validate user: null. Type: class org.hornetq.api.core.HornetQSecurityException
ERROR 2015-10-20 16:53:01,956 [main] org.mule.module.launcher.application.DefaultMuleApplication: null
org.hornetq.api.core.HornetQSecurityException: HQ119031: Unable to validate user: null
Я ожидаю, что вы хотите получить больше информации, больше деталей, но я не хочу, чтобы затопить вас неверные данные - так просите, и вы получите.
Обновление: К сожалению, предложения @ RyanCarter не были «это» или, возможно, просто «недостаточно». Если я отключу функцию «с поддержкой безопасности», она будет успешно развернута, но сбой при попытке отправить сообщение:
В верхней части отчетов о трассировке стека «javax.jms.JMSException: нет очереди с именем JMS/очередь/CoordReceive». Я сейчас выясняю, что происходит - я знаю, что существует очередь, потому что работает Java-программа. К Google!
На данный момент у меня есть работа, а работа: вместо JMS Connector я использую компонент Java, а затем обрабатываю интерфейс Wildfly в Java. Я бы по-прежнему предпочел бы это по-другому, и именно поэтому это всего лишь комментарий, а не самостоятельный ответ. Чтобы быть ясным, этот вопрос по-прежнему открыт._ – KlaymenDK
Кроме того, мне нужно обрабатывать входящие сообщения _from_ Wildfly, и для этого я не могу использовать работу Java. – KlaymenDK