2013-08-09 1 views
2

J'ai essayé un projet de démonstration avec websocket + jms 2.0 et ejb 3.1. Il échoue lors du déploiement sur Wildfly 8.0.0 Alpha3.JBAS014771: Services avec dépendances manquantes/indisponibles

EJB-Bean:

@Stateless 
public class QueueSenderSessionBean { 

    @Resource(lookup = "queue/myQueue") 
    private Queue myQueue; 
    @Inject 
    private JMSContext jmsContext; 

    public void sendMessage(String message) { 
     jmsContext.createProducer().send(myQueue, message); 
    System.out.println("sendMessage"); 
    } 
} 

JMS-Bean:

J'utilise-full.xml autonome pour jms avec l'ajout du code en-full.xml autonome :

<jms-destinations> 
        <jms-queue name="WebSocketMDBQueue"> 
         <entry name="queue/myQueue"/> 
        </jms-queue> 
       </jms-destinations> 

I se e dans le message d'erreur et trouver, qu'il y a une double racine de contexte "javaee7-jms-websocket-example-1.0-SNAPSHOT". Mais pourquoi?

jboss.naming.context.java.module.\"javaee7-jms-websocket-example-1.0-SNAPSHOT\".\"javaee7-jms-websocket-example-1.0-SNAPSHOT\".env.queue.myQueue 

pile trace:

15:56:11,932 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221000: live server is starting with configuration HornetQ Configuration (clustered=false,backup=false,sharedStore=true,journalDirectory=/home/argonist/om-umgebung/wildfly-8.0.0.Alpha3/standalone/data/messagingjournal,bindingsDirectory=/home/argonist/om-umgebung/wildfly-8.0.0.Alpha3/standalone/data/messagingbindings,largeMessagesDirectory=/home/argonist/om-umgebung/wildfly-8.0.0.Alpha3/standalone/data/messaginglargemessages,pagingDirectory=/home/argonist/om-umgebung/wildfly-8.0.0.Alpha3/standalone/data/messagingpaging) 
15:56:11,935 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221006: Waiting to obtain live lock 
15:56:12,024 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221013: Using NIO Journal 
15:56:12,124 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-7) JBAS015012: Started FileSystemDeploymentService for directory /home/argonist/om-umgebung/wildfly-8.0.0.Alpha3/standalone/deployments 
15:56:12,126 INFO [org.jboss.as.remoting] (MSC service thread 1-8) JBAS017100: Listening on 127.0.0.1:9999 
15:56:12,139 INFO [org.jboss.as.server.deployment] (MSC service thread 1-5) JBAS015876: Starting deployment of "javaee7-jms-websocket-example-1.0-SNAPSHOT.war" (runtime-name: "javaee7-jms-websocket-example-1.0-SNAPSHOT.war") 
15:56:12,162 INFO [org.jboss.as.jacorb] (MSC service thread 1-2) JBAS016330: CORBA ORB Service started 
15:56:12,206 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221034: Waiting to obtain live lock 
15:56:12,206 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221035: Live Server Obtained live lock 
15:56:12,312 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-8) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS] 
15:56:12,382 INFO [org.jboss.as.jacorb] (MSC service thread 1-7) JBAS016328: CORBA Naming Service started 
15:56:12,630 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221020: Started Netty Acceptor version 3.6.2.Final-c0d783c 127.0.0.1:5445 for CORE protocol 
15:56:12,633 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221020: Started Netty Acceptor version 3.6.2.Final-c0d783c 127.0.0.1:5455 for CORE protocol 
15:56:12,637 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221020: Started Netty Acceptor version 3.6.2.Final-c0d783c org.hornetq.default.servlet:5445 for CORE protocol 
15:56:12,638 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221007: Server is now live 
15:56:12,639 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 56) HQ221001: HornetQ Server version 2.3.1.Final (Wild Hornet, 123) [a6f1e08d-fd95-11e2-be04-2f639dab68d8] 
15:56:12,676 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 56) JBAS011601: Bound messaging object to jndi name java:jboss/exported/jms/ServletConnectionFactory 
15:56:12,682 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 58) JBAS011601: Bound messaging object to jndi name java:jboss/exported/jms/RemoteConnectionFactory 
15:56:12,683 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 59) JBAS011601: Bound messaging object to jndi name java:/ConnectionFactory 
15:56:12,684 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 59) JBAS011601: Bound messaging object to jndi name java:jboss/DefaultJMSConnectionFactory 
15:56:12,685 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 57) HQ221003: trying to deploy queue jms.queue.WebSocketMDBQueue 
15:56:12,700 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 57) JBAS011601: Bound messaging object to jndi name queue/myQueue 
15:56:12,709 INFO [org.wildfly.extension.undertow] (MSC service thread 1-8) JBAS018210: Register web context: /hornetq-server 
15:56:12,732 INFO [org.jboss.as.connector.deployment] (MSC service thread 1-7) JBAS010406: Registered connection factory java:/JmsXA 
15:56:12,748 INFO [org.jboss.weld.deployer] (MSC service thread 1-6) JBAS016002: Processing weld deployment javaee7-jms-websocket-example-1.0-SNAPSHOT.war 
15:56:12,763 INFO [org.hornetq.ra] (MSC service thread 1-7) HornetQ resource adaptor started 
15:56:12,763 INFO [org.jboss.as.connector.services.resourceadapters.ResourceAdapterActivatorService$ResourceAdapterActivator] (MSC service thread 1-7) IJ020002: Deployed: file://RaActivatorhornetq-ra 
15:56:12,766 INFO [org.jboss.as.connector.deployment] (MSC service thread 1-7) JBAS010401: Bound JCA ConnectionFactory [java:/JmsXA] 
15:56:12,780 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-6) HV000001: Hibernate Validator 5.0.1.Final 
15:56:12,851 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-6) JNDI bindings for session bean named QueueSenderSessionBean in deployment unit deployment "javaee7-jms-websocket-example-1.0-SNAPSHOT.war" are as follows: 

    java:global/javaee7-jms-websocket-example-1.0-SNAPSHOT/QueueSenderSessionBean!org.glassfish.samples.javaee7.websocketjms.QueueSenderSessionBean 
    java:app/javaee7-jms-websocket-example-1.0-SNAPSHOT/QueueSenderSessionBean!org.glassfish.samples.javaee7.websocketjms.QueueSenderSessionBean 
    java:module/QueueSenderSessionBean!org.glassfish.samples.javaee7.websocketjms.QueueSenderSessionBean 
    java:global/javaee7-jms-websocket-example-1.0-SNAPSHOT/QueueSenderSessionBean 
    java:app/javaee7-jms-websocket-example-1.0-SNAPSHOT/QueueSenderSessionBean 
    java:module/QueueSenderSessionBean 

15:56:13,010 INFO [org.jboss.weld.deployer] (MSC service thread 1-4) JBAS016005: Starting Services for CDI deployment: javaee7-jms-websocket-example-1.0-SNAPSHOT.war 
15:56:13,041 INFO [org.jboss.weld.Version] (MSC service thread 1-4) WELD-000900 2.0.2 (Final) 
15:56:13,060 INFO [org.jboss.weld.deployer] (MSC service thread 1-4) JBAS016008: Starting weld service for deployment javaee7-jms-websocket-example-1.0-SNAPSHOT.war 
15:56:13,094 INFO [org.jboss.as.ejb3] (MSC service thread 1-7) JBAS014142: Started message driven bean 'WebSocketMDB' with 'hornetq-ra' resource adapter 
15:56:13,247 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "javaee7-jms-websocket-example-1.0-SNAPSHOT.war")]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.\"javaee7-jms-websocket-example-1.0-SNAPSHOT\".\"javaee7-jms-websocket-example-1.0-SNAPSHOT\".env.\"org.glassfish.samples.javaee7.websocketjms.QueueSenderSessionBean\".myQueue is missing [jboss.naming.context.java.module.\"javaee7-jms-websocket-example-1.0-SNAPSHOT\".\"javaee7-jms-websocket-example-1.0-SNAPSHOT\".env.queue.myQueue]"]} 
15:56:13,287 INFO [org.jboss.as.server] (ServerService Thread Pool -- 30) JBAS018559: Deployed "javaee7-jms-websocket-example-1.0-SNAPSHOT.war" (runtime-name : "javaee7-jms-websocket-example-1.0-SNAPSHOT.war") 
15:56:13,291 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report 
JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.naming.context.java.module."javaee7-jms-websocket-example-1.0-SNAPSHOT"."javaee7-jms-websocket-example-1.0-SNAPSHOT".env.queue.myQueue (missing) dependents: [service jboss.naming.context.java.module."javaee7-jms-websocket-example-1.0-SNAPSHOT"."javaee7-jms-websocket-example-1.0-SNAPSHOT".env."org.glassfish.samples.javaee7.websocketjms.QueueSenderSessionBean".myQueue] 

15:56:13,314 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management 
15:56:13,316 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990 
15:56:13,317 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: WildFly 8.0.0.Alpha3 "WildFly" started (with errors) in 4007ms - Started 264 of 318 services (21 services failed or missing dependencies, 71 services are lazy, passive or on-demand) 

Répondre

0

Avec 2,0 JMS, il y a une usine de connexion par défaut fourni. Ainsi, son entrée JNDI doit être fournie avec les fabriques de connexions répertoriées dans le serveur XML.

Voir le lien ci-dessous: https://docs.jboss.org/author/display/WFLY8/Messaging+configuration

Depuis JMS 2.0, une usine de connexion JMS par défaut est accessible à l'application EE sous le nom JNDI java: comp/DefaultJMSConnectionFactory. Le sous-système de messagerie WildFly définit une fabrique de connexions groupées utilisée pour fournir cette fabrique de connexions par défaut. Tout changement de paramètre sur cette fabrique de connexions groupées sera pris en compte par toute application EE regardant le fournisseur JMS par défaut sous le nom JNDI java: comp/DefaultJMSConnectionFactory.

<pooled-connection-factory name="hornetq-ra"> 
      <transaction mode="xa"/> 
      <connectors> 
       <connector-ref connector-name="in-vm"/> 
      </connectors> 
      <entries> 
       <entry name="java:/JmsXA"/> 
       <!-- Global JNDI entry used to provide a default JMS Connection factory to EE application --> 
       <entry name="java:jboss/DefaultJMSConnectionFactory"/> 
      </entries> 
     </pooled-connection-factory> 
Questions connexes