猿问

如何配置 OpenLiberty 18.0.0.2 以使用 Liberty 嵌入式消息传递?

我正在尝试将 OpenLiberty 18.0.0.2 配置为使用嵌入式消息传递来发送一些简单的 JMS 消息。


我的电流server.xml如下所示:


<?xml version="1.0" encoding="UTF-8"?>


<server description="new server">

  <featureManager>

    <feature>javaee-8.0</feature>

    <feature>mpConfig-1.2</feature>

    <feature>mpMetrics-1.1</feature>

    <feature>wasJmsServer-1.0</feature>

    <feature>wasJmsClient-2.0</feature>

    <feature>localConnector-1.0</feature>

  </featureManager>

  <quickStartSecurity userName="admin" userPassword="adminpwd" />


  <httpEndpoint id="defaultHttpEndpoint" httpPort="9080" httpsPort="9443" />


  <applicationManager autoExpand="true" />

  <applicationMonitor updateTrigger="mbean" />


  <messagingEngine>

    <queue id="QUEUE1" />

  </messagingEngine>


  <jmsQueueConnectionFactory jndiName="jms/JmsFactory">

    <properties.wasJms remoteServerAddress="localhost:7276:BootStrapBasicMessaging" />

  </jmsQueueConnectionFactory>


  <jmsQueue jndiName="jms/JmsQueue">

    <properties.wasJms queueName="QUEUE1" />

  </jmsQueue>

</server>

我的 JMS 发件人如下所示:


public class JmsMessageSender {



    @Resource(mappedName = "jms/JmsFactory")

    private ConnectionFactory jmsFactory;


    @Resource(mappedName = "jms/JmsQueue")

    private Queue jmsQueue;


    public void send() {


        TextMessage message;


        try (Connection connection = jmsFactory.createConnection();

             Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

             MessageProducer producer = session.createProducer(jmsQueue)) {


            message = session.createTextMessage();

            message.setText("Hello World!");

            producer.send(message);


        } catch (JMSException e) {

            e.printStackTrace();

        }

    }

}

当我运行我的应用程序时,当我尝试将消息发送到嵌入式消息传递队列时,出现以下异常:


javax.jms.InvalidDestinationException: CWSIA0281E: The specified value null is not allowed for Destination.

[err]   at com.ibm.ws.sib.api.jms.impl.JmsDestinationImpl.checkNativeInstance(JmsDestinationImpl.java:993)

[err]   at [internal classes]

看起来我的代码无法通过JNDI. 我是否错误地配置了嵌入式消息,或者是我的源代码中的错误?


莫回无
浏览 151回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答