2

ファイルに JMS-Queue の簡単な定義がありますmy-hornetq-jms.xml

<configuration xmlns="urn:hornetq"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
      <queue name="my.test.queue">  
        <entry name="/queue/myTest"/>  
      </queue>  
</configuration>

@Statelessキューが正しくアクティブ化されたので、 Beanに依存関係を追加したいと考えています。この質問は、Web アプリケーションが JBOSS 6.0 で開始されたときに hornet キューが確実に存在するようにするにはどうすればよいですか? に似ています。、しかし、注釈で依存関係を定義したい。これを(いくつかの順列で)試しましたが、正しい方法が見つかりませんでした:

@Depends(value="org.hornetq:module=JMS,type=Queue,name=my.test.queue")

私はいつも次のようなエラーを受け取ります:

Dependency "<UNKNOWN jboss.j2ee:jar=my.war,name=MyBean,service=EJB3>"
(should be in state "Installed", but is actually in state "** UNRESOLVED Demands
'org.hornetq:module=JMS,name=my.test.queue,type=Queue' **")

ところで: JBoss-5 では、次のように定義しました。@Depends(value = "jboss.messaging.destination:service=Queue,name=my.test.queue")

4

2 に答える 2

3

この Bean 名を使用して依存関係を定義できるはずです。

org.hornetq:module=JMS,type=Topic,name="YOUR-TOPIC-NAME"

また

org.hornetq:module=JMS,type=Queue,name="YOUR-TOPIC-NAME"

詳細については、org.hornetq.api.core.management.ObjectNameBuilder の実装を参照してください。これは、デプロイヤがここでメソッドを使用して名前を定義しているためです。

また、MBean 間のこの依存関係は、AS6 または EAP 5.1.1+ でのみ機能します。手動インストールでは AS デプロイヤがインストールされないため、これは AS5 またはその他の手動インストールでは機能しません。

また、AS7 には別の注入依存関係があります。これはおそらく AS7 でも機能しません。(JNDI 名を直接注入できるので、必要ないと思います。つまり、AS7 ではより適切な方法で行われます)

于 2011-07-21T19:13:02.797 に答える
1

上記のエラーは、間違ってインポートしたために発生しました@Depends:

import org.jboss.ejb3.annotation.Depends; //WRONG
import org.jboss.beans.metadata.api.annotations.Depends; //CORRECT
于 2011-07-29T10:47:19.627 に答える