Arbeiten MDB B. in JBoss 7.0.1?

Hier ist ein EJB3 MDB, verwendet, um Arbeit für mich in JBoss 5.1:

@TransactionAttribute( TransactionAttributeType.NOT_SUPPORTED )
@org.jboss.ejb3.annotation.Depends("jboss.messaging.destination:service=Topic,name=IncomingArticleNotifications")
@MessageDriven(
    activationConfig = {
        @ActivationConfigProperty( propertyName="destinationType", propertyValue="javax.jms.Topic"),
        @ActivationConfigProperty( propertyName="destination", propertyValue="topic/IncomingArticleNotificationsDest"),
        @ActivationConfigProperty( propertyName="subscriptionDurability", propertyValue="Durable"),
        @ActivationConfigProperty( propertyName="messageSelector", propertyValue ="type='IncomingArticleNotification'")
    }
)
public class IncomingArticleHandler implements MessageListener
{
    [...]
}

Versuchen, wie ich könnte, ich kann nicht migriert werden, um JBoss 7.0.1. JMS eingerichtet ist OK, und ich kann Sie veröffentlichen, um die Ziel-OK (aus meiner Haupt-JAR), aber mein EJB-Hörer einfach nicht hören. Ich bekomme nicht bereitstellen-oder Laufzeit-Fehler für mein EJB /WAR /EAR:

01:02:40,600 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) Starting deployment of "product-ear-1.0-SNAPSHOT.ear"
01:02:41,752 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "product-ejb-1.0-SNAPSHOT.jar"
01:02:41,753 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "product.war"

Hab ich auch behoben die JNDI-Namen, wie pro die Anweisungen, also hier ist was ich jetzt habe:

//Ignore for now: @TransactionAttribute( TransactionAttributeType.NOT_SUPPORTED )
@ResourceAdapter("ejb3-rar.rar")    //??? As per docs. No idea what this should be, an attempt to get something working.
@MessageDriven(
    activationConfig = {
        @ActivationConfigProperty( propertyName="destinationType", propertyValue="javax.jms.Topic"),
        @ActivationConfigProperty( propertyName="destination", propertyValue="java:/topic/IncomingArticleNotificationsDest"),    //updated
        @ActivationConfigProperty( propertyName="subscriptionDurability", propertyValue="Durable")
        //Ignore for now: @ActivationConfigProperty( propertyName="messageSelector", propertyValue ="type='IncomingArticleNotification'")
    }
)
public class IncomingArticleHandler implements MessageListener
{
    [...]
}

Einstellung alle Logger ALL vor der Implementierung zeigt, dass die einzige Zeit, meine MDB-Klassen erwähnt werden, ist, wenn die org.jboss.vfs.util.SuffixMatchFilter sieht - das kann nicht gut sein.

Habe ich die Ausgabe von MDB unterstützt seit 7.0.0 und Lesen durch Dutzende von JIRAs, nicht zu vergessen die migration guide, EJB3 docs und so weiter, aber ich bin verwirrt. Ich weiß MDBs sollte Arbeit in 7.0.1, aber das oben genannte ist machbar? Ich denke, meiner ist ganz ein einfacher Fall, so hat jemand ein einfaches lauffähiges Beispiel, ein Dokument, das besagt genau das, was funktioniert /funktioniert nicht mit 7.0.1 oder einer migration guide?

Edit: dachte, ich würde hinzufügen, dass dies meine einzige EJB -, so ist dies wahrscheinlich so viel ein EJB-problem als JMS/MDB.

Updates:

Kann ich bereitstellen einer dummy - @Stateless ohne Probleme, aber keine Kombination von @MessageDriven/@ActivationConfigProperty gehabt hat, irgendeinen Effekt (bodging die destinationType zu javax.jms.XXX produziert keine Fehler!). Ich habe versucht Einstellung der destination-Eigenschaft, um alle möglichen JNDI-Kombinationen.

Ich habe meine standalone.xml gegen standalone-preview.xml und es gibt keine wesentlichen Unterschiede.

Den nächsten bekomme ich für jede Art von Fehler ist dieser:

00:53:25,886 DEBUG [org.hornetq.ra.Util] (MSC service thread 1-4) org.jboss.as.messaging.jms.TransactionManagerLocator from [Module "org.hornetq.ra:main" from local module loader @15a62c31 (roots: /Users/andrewregan/Desktop/jboss-as-7.0.1.Final/modules)]: java.lang.ClassNotFoundException: org.jboss.as.messaging.jms.TransactionManagerLocator from [Module "org.hornetq.ra:main" from local module loader @15a62c31 (roots: /Users/andrewregan/Desktop/jboss-as-7.0.1.Final/modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:101)
at org.hornetq.ra.Util.locateTM(Util.java:261) [hornetq-ra-2.2.7.Final.jar:]
at org.hornetq.ra.HornetQResourceAdapter.locateTM(HornetQResourceAdapter.java:1555) [hornetq-ra-2.2.7.Final.jar:]
at org.hornetq.ra.HornetQResourceAdapter.start(HornetQResourceAdapter.java:210) [hornetq-ra-2.2.7.Final.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_26]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_26]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_26]
at org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.startContext(AbstractResourceAdapterDeployer.java:339) [ironjacamar-deployers-common-1.0.3.Final.jar:1.0.3.Final]
at org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:1883) [ironjacamar-deployers-common-1.0.3.Final.jar:1.0.3.Final]
at org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:825) [ironjacamar-deployers-common-1.0.3.Final.jar:1.0.3.Final]
at org.jboss.as.connector.services.ResourceAdapterActivatorService$ResourceAdapterActivator.doDeploy(ResourceAdapterActivatorService.java:140) [jboss-as-connector-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.as.connector.services.ResourceAdapterActivatorService.start(ResourceAdapterActivatorService.java:93) [jboss-as-connector-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765) [jboss-msc-1.0.0.GA.jar:1.0.0.GA]
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291) [jboss-msc-1.0.0.GA.jar:1.0.0.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]

Könnte das ein problem sein? Ich verstehe, dass durch das hinzufügen @ResourceAdapter(value="hornetq-ra.rar") wie ich gesehen habe vorgeschlagen, an anderer Stelle.

Nicht sicher, aber propertyValue="java:/topic/IncomingArticleNotificationsDest" sieht ein wenig verdächtig zu mir. Sind Sie sicher, dass das korrekt ? EJB 3.1 portable JNDI-Namen Aussehen würde java:<xyz>/topic/... wo xyz ist vielleicht (global,app,module)
Danke für die Anregung. Ich bin jetzt angeben java:/global/topic/IncomingArticleNotificationsDest in die MDB, aber JBoss-immer setzt die Themen unter nur java:/ (in jedes einzelne Beispiel, das ich gesehen habe, das Eingabeformat erwartet in standalone.xml ist "topic/XYZ"). Das Ergebnis ist, dass mein MEB immer noch nicht bekommen, aufgerufen. (BTW, habe ich eine dummy - @Stateless bean und setzt auch in Ordnung.)
Sieht aus wie ein startup-config wie dieser erforderlich ist, ALS-7.0.1
Ich denke es ist nicht so, dass, ich habe bereits die urn:jboss:domain:messaging:1.0 Abschnitt von standalone-preview.xml in meinem standalone.xml, aber ich werde versuchen, das Beispiel von Grund auf und sehen, was passiert. Was ich nicht verstehe ist, dass - auch wenn ich angegeben habe, das falsche Feld JNDI name die in meinem @MessageDriven - meine MDB-Dateien werden komplett ignoriert. Keine bereitstellen, Fehler, nichts...

InformationsquelleAutor Andrew Regan | 2011-09-25

Schreibe einen Kommentar