Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义ActiveMQ生产者端口_Java_Jms_Port_Activemq_Producer - Fatal编程技术网

Java 自定义ActiveMQ生产者端口

Java 自定义ActiveMQ生产者端口,java,jms,port,activemq,producer,Java,Jms,Port,Activemq,Producer,我已经实现了JMS生产者和消费者,它们部署在DMZ中的两个不同主机上。 我阅读了如何为生产者定义自定义主机和端口。但我不明白我该把这条线放在哪里 这是我的密码: Connection connection = null; try{ System.out.println("Connecting to "+getBrokerUrl()); connection = (new ActiveMQConnectionFactory(getBrokerUrl()))

我已经实现了JMS生产者和消费者,它们部署在DMZ中的两个不同主机上。 我阅读了如何为生产者定义自定义主机和端口。但我不明白我该把这条线放在哪里

这是我的密码:

Connection connection = null;
    try{

        System.out.println("Connecting to "+getBrokerUrl());
        connection = (new ActiveMQConnectionFactory(getBrokerUrl())).createConnection();
        connection.start();

        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Topic topic = session.createTopic(this.topicName);

        TextMessage txtMsg = session.createTextMessage();
                    txtMsg.setText(msg);
                    txtMsg.setJMSType(msgType);

        MessageProducer producer = session.createProducer(topic);
                        producer.send(txtMsg);

    }
    catch(Exception e){
        System.out.println("Error: " + e.getMessage());
    }
    finally{
        try{
            connection.close();
        }
        catch(JMSException je){
            System.out.println("Unable to close connection: "+je.getMessage());
        }
    }

有人能帮我吗?

应该在您正在传递getBrokerUrl结果的ActiveMQConnectionFactory实例中:

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost");

如果我用vm://localhost替换getrokerUrl,我如何指定brokerUrl?应该是u url这只是一个示例,因此该行应该是:ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactoryvm://myBrokerHost:61616/localhost:60606; 生产者应该从端口60606在myBrokerHost上发布?为每个主机创建一个单独的ActiveMQConnectionFactory和单独的MessageProducerMaybe,因为我无法正确解释问题。。。我只有一个从生产者本地主机到代理myBrokerHost的连接。代理正在侦听默认端口61616;如何强制本地主机上的生产者从特定端口(例如60606)发送消息?正在执行tcp://myBrokerHost:61616/localhost:60606 我得到以下错误:java.net.ConnectException:Invalid参数我认为问题在于localhost的解决方案