#java #jms #wildfly
#java #jms #wildfly
Вопрос:
Я пытаюсь прослушать очередь JMS на удаленном сервере Wildfly. Я успешно подключился к удаленному серверу для отправки сообщения с тем же пользователем, но при настройке моего MessageDrivenBean я получаю сообщение об ошибке.
@MessageDriven(name = "MessageListenerBean", activationConfig = {
@ActivationConfigProperty(propertyName = "user", propertyValue = "username"),
@ActivationConfigProperty(propertyName = "password", propertyValue = "p@ssw0rd!"),
@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "/queue/receive"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName="connectionParameters", propertyValue = "host=localhost;port=8080")})
public class MessageListenerBean implements MessageListener {
Ошибка
AMQ222216: Security problem while creating session:
AMQ119031: Unable to validate user from invm:0.
Username: username; SSL certificate subject DN: unavailable
Я предполагаю, что моя конфигурация неверна, но как?
Ответ №1:
Вам необходимо указать правильный connectorClassName
в вашей конфигурации активации. По умолчанию используется значение org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory
, поэтому он использует соединитель invm с локальным брокером. Используйте это:
@ActivationConfigProperty(propertyName="connectorClassName", propertyValue = "org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory")