1

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'

これは検証エラーであることがわかりますが、どのドキュメントも私を正しい方向に向けていないようです。

4

2 に答える 2

3

以前に試したことがありますが、うまくいきませんでした。おそらく前回名前空間を台無しにしてしまったのでしょう。プラグイン定義を変更し、Spring 名前空間を Bean 宣言に追加しました。

<plugins>
    <bean id="tokenLoginPlugin" class="auth.TokenLoginPlugin" xmlns="http://www.springframework.org/schema/beans">
        <property name="host" value="localhost" />
    </bean>
</plugins>
于 2012-07-04T11:32:19.983 に答える
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>
于 2012-07-04T11:37:33.687 に答える