2013-09-19 2 views
0

У меня возникла проблема при создании сообщения blob для передачи файла в ActiveMQ. Ошибка: javax.jms.JMSException: PUT не был успешным: 401 Несанкционированное Вот мой brokerURL:BlobMesage 401 Unauthorized on ActiveMQ

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> 
<property name="brokerURL"><value>tcp://localhost:61616?jms.blobTransferPolicy.defaultUploadUrl=http://localhost:8161/fileserver/</value> 
     </property> 
     <property name="userName" value="admin" /> 
     <property name="password" value="admin" /> 
    </bean> 

Есть вопросы здесь? Я потратил несколько часов на поиск, но не нашел правильного решения. Пожалуйста, поделитесь со мной

ответ

0

Я бы попробовать соединение с сервером HTTP с/FTP клиентом HTTP и проверить у вас есть права на запись ...

+0

Я только что проверил на ActiveMQ 5.7. Все нормально. на ActiveMQ 5.8 все еще эта ошибка. В версии ActiveMQ есть разница. Кто-то дает решение, что я должен ввести имя пользователя и пароль в brokerURL, но все же ошибку. Что такое формат brokerURL с именем пользователя и паролем? – Hieu

+0

Попробуйте http: // user: [email protected] – Sistemlegend

+0

Я проверил с brokerURL: 1. tcp: // localhost: 61616? Jms.blobTransferPolicy.defaultUploadUrl = http: // localhost: 8161/fileserver /? Admin: admin (error: Неверные параметры подключения: {имя пользователя = admin: пароль = admin}) 2. tcp: // localhost: 61616? jms.blobTransferPolicy.defaultUploadUrl = http: // localhost: 8161/fileserver /? username = admin: password = admin (Недействительные параметры подключения: {имя_пользователя = admin: пароль = admin}>). Какой формат для brokerURL? – Hieu

1

Я думаю, вам нужно добавить HTTP транспортного соединителя:

<transportConnector name="http" uri="http://0.0.0.0:8080"/> 

URI как http: // localhost: 8080 сделал нет работа в моем случае. У меня также создается впечатление, что разъемы по умолчанию не защищены, а имя пользователя и пароль устарели (по крайней мере, для первой попытки).

Окончательное решение

ActiveMQ конфигурации (activemq.xml)

<transportConnectors> 
     <transportConnector name="http" uri="http://0.0.0.0:8080"/> 
    </transportConnectors> 

Java Client (производитель только)

try { 
    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("http://localhost:8080"); 
    Connection connection = connectionFactory.createConnection(); 
    connection.start(); 

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

    // Create the best Queue ever 
    Destination destination = session.createQueue("STACKOVERFLOW.SUPPORT"); 

    // Create a MessageProducer from the Session to the Topic or Queue 
    MessageProducer producer = session.createProducer(destination); 
    producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 

    // Create a messages 
    TextMessage message = session.createTextMessage("I hope this snippets help you :D | Thread: " + Thread.currentThread().getName()); 

    producer.send(message); 

    //clean up 
    session.close(); 
    connection.close(); 
    } catch(JMSException e) { 
     e.printStackTrace(); 
    } 
Смежные вопросы