我编写了一个简单的身份验证/授权插件,我想将其注入ActiveMQ。我希望它被称为onConnect和onSubscribe。我跟着these steps at the ActiveMQ website,但发生了一些事情。
1)如果我在// beans / broker / plugins的默认activemq.xml文件中输入我的bean声明,我会收到验证错误,说明那里不允许使用节点“bean”。
2)如果我将插件声明放在broker元素之外,它将注入元素,但它不会调用installPlugin(),也不会调用钩子,大概是因为那是为了代理。
3)如果我将默认的activemq.xml(http://activemq.apache.org/schema/core)中的XML名称空间声明更改为上面列出的文档(http:// activemq。 org / config / 1.0)以及正确的URL,我得到了无法找到架构文档的错误。
我唯一可以想到的是,5.6中的变化要么没有反映在文档中,我做的事情非常错误,或者我只是疯了。这是xml doc的相关部分(减去几个与问题没有直接关系的节点)。
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.org/config/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
<plugins>
<bean id="tokenLoginPlugin" class="auth.TokenLoginPlugin">
<property name="host" value="localhost" />
</bean>
</plugins>
</broker>
这会产生以下异常。
The matching wildcard is strict, but no declaration can be found for element 'broker'.
如果我使用默认的activemq.xml文件中的xmlns声明,我会得到以下内容。
Invalid content was found starting with element 'bean'
我可以看到这是一个验证错误,但没有一个文档似乎指向我正确的方向。
答案 0 :(得分:2)
想出来,虽然我之前尝试过,但它没有奏效。也许我最后一次搞砸了我的命名空间。我更改了我的插件定义,并将Spring命名空间添加到我的bean声明中。
<plugins>
<bean id="tokenLoginPlugin" class="auth.TokenLoginPlugin" xmlns="http://www.springframework.org/schema/beans">
<property name="host" value="localhost" />
</bean>
</plugins>
答案 1 :(得分:0)
我的配置是:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<plugins>
<bean xmlns="http://www.springframework.org/schema/beans" id="probePlugin" class="com.ProbePlugin"/>
</plugins>
</beans>