最近玩起了Docker和ActiveMQ之后,想起可以在Docker中搭建一个ActiveMQ容器来运行ActiveMQ环境,当我费劲千辛终于搭建好了容器之后,我照着老师的代码做了一遍,发现出现了连接失败问题,起初我以为是我的容器端口映射出现了问题,我在本地连接容器是完全没有问题的,然后我翻阅ActiveMQ的文档发现使用的传送协议是TCP协议,我有回头将容器的TCP协议端口打开了,发现还是不行,请大家帮我看看是哪里出现了问题。下面是我程序主要代码private static final String MQ_USER = ActiveMQConnection.DEFAULT_USER; private static final String MQ_PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; private static final String MQ_ADDRESS = "tcp://192.168.1.106:32769"; private static final int SEND_NUMBER = 50; public static void main(String[] args){ Connection connection = null; Session session = null; try { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory( MQ_USER, MQ_PASSWORD, MQ_ADDRESS); connection = connectionFactory.createConnection(); connection.start(); session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); //消息接受者,消息发送目的地 Destination destination = session.createQueue("testSendQueue1"); //消息发送者 MessageProducer producer = session.createProducer(destination); //不进行持久化// producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); sendMessage(session, producer); session.commit(); } catch (JMSException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { if(session != null){ session.close(); } if(connection != null){ connection.close(); } } catch (JMSException e) { e.printStackTrace(); } } } public static void sendMessage(Session session, MessageProducer producer) throws Exception { for (int i = 1; i <= SEND_NUMBER; i++) { TextMessage message = session .createTextMessage("ActiveMq 发送的消息" + i); // 发送消息到目的地方 System.out.println("发送消息:" + "ActiveMq 发送的消息 : " + i); producer.send(message); } }
添加回答
举报
0/150
提交
取消