如果你遇到activemq 在发blob消息提示不支持put,那么可能是这样的。
请看看下面字符串的区别。
<property name="brokerURL" value="tcp://localhost:61616?jms.blobTransferPolicy.defaultUploadUrl=http://localhost/fileserver/"/>
<property name="brokerURL" value="tcp://localhost:61616?jms.blobTransferPolicy.defaultUploadUrl=http://localhost/fileserver"/>
前面那个是对的。
这是源代码。注意看,源代码中没有判断URL最后的字符是否为/,算是个小失误吧。
protected URL createUploadURL(ActiveMQBlobMessage message) throws JMSException, MalformedURLException {
return new URL(transferPolicy.getUploadUrl() + message.getMessageId().toString());
}