配置引起的activemq blob的put 抛出错误

配置引起的activemq blob的put 抛出异常。

如果你遇到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());
    }