ActiveMQ に挿入したい単純な認証/承認プラグインを作成しました。onConnect と onSubscribe という名前にしたいです。ActiveMQ Web サイトでこれらの手順を実行しましたが、いくつかのことが起こります。
1) //beans/broker/plugins のデフォルトの activemq.xml ファイルに Bean 宣言を入れると、ノード「bean」が許可されていないという検証エラーが表示されます。
2) プラグイン宣言をブローカー要素の外に置くと、要素が挿入されますが、おそらくブローカーが行うため、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'
これは検証エラーであることがわかりますが、どのドキュメントも私を正しい方向に向けていないようです。