2017-06-06 1 views
0

J'ai un serveur Glassfish (4.1.2) et suivant this tutorial J'ai intégré Apache ActiveMQ au serveur. Ensuite, j'ai développé un client autonome pour la messagerie selon this part of the same tutorial. Terminé avec ce que j'ai suivi le last part of this tutorial pour développer un MessageDrivenBean écoutant la file d'attente utilisée dans les étapes précédentes.La connexion au courtier JMS échoue

Tout a bien été compilé. ActiveMQ est également en cours d'exécution. Mais chaque fois que je Déployez les EJB ce qui suit est enregistré dans mon journal du serveur GF:

Info: visiting unvisited references 
Info: visiting unvisited references 
Info: JTS5014: Recoverable JTS instance, serverId = [3700] 
Warning: RAR8000 : The method setDestinationLookup is not present in the class : org.apache.activemq.ra.ActiveMQActivationSpec 
Warning: RAR7097: No setter method present for the property destinationLookup in the class org.apache.activemq.ra.ActiveMQActivationSpec 
Info: 2017-06-06 11:43:00,675 [min-listener(1)] INFO ActiveMQEndpointWorker   - Starting 
Info: 2017-06-06 11:43:00,682 [ad-pool-1; w: 4] INFO ActiveMQEndpointWorker   - Establishing connection to broker [vm://0.0.0.0:6616] 
Info: WELD-000900: 2.2.13 (Final) 
WARN: WELD-001700: Interceptor annotation class javax.ejb.PostActivate not found, interception based on it is not enabled 
WARN: WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled 
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds. 
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds. 
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds. 
Info: AmdMDB was successfully deployed in 5.290 milliseconds. 
Info: 2017-06-06 11:43:31,695 [ad-pool-1; w: 4] ERROR ActiveMQEndpointWorker   - Failed to connect to broker [vm://0.0.0.0:6616]: Could not create Transport. Reason: java.net.URISyntaxException: Illegal character in scheme name at index 0: 0.0.0.0:6616 
javax.jms.JMSException: Could not create Transport. Reason: java.net.URISyntaxException: Illegal character in scheme name at index 0: 0.0.0.0:6616 
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:36) 
    at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:260) 
    at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:273) 
    at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:194) 
    at org.apache.activemq.ra.ActiveMQResourceAdapter.makeConnection(ActiveMQResourceAdapter.java:132) 
    at org.apache.activemq.ra.ActiveMQEndpointWorker$1.run(ActiveMQEndpointWorker.java:109) 
    at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:107) 
    at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497) 
    at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540) 
Caused by: java.net.URISyntaxException: Illegal character in scheme name at index 0: 0.0.0.0:6616 
    at java.net.URI$Parser.fail(URI.java:2848) 
    at java.net.URI$Parser.checkChars(URI.java:3021) 
    at java.net.URI$Parser.checkChar(URI.java:3031) 
    at java.net.URI$Parser.parse(URI.java:3047) 
    at java.net.URI.<init>(URI.java:588) 
    at org.apache.activemq.util.URISupport.parseComposite(URISupport.java:390) 
    at org.apache.activemq.util.URISupport.parseComposite(URISupport.java:279) 
    at org.apache.activemq.transport.vm.VMTransportFactory.doCompositeConnect(VMTransportFactory.java:63) 
    at org.apache.activemq.transport.vm.VMTransportFactory.doConnect(VMTransportFactory.java:54) 
    at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64) 
    at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:258) 
    ... 7 more 
Info: 2017-06-06 11:43:31,697 [ad-pool-1; w: 4] ERROR ActiveMQEndpointWorker   - Endpoint will try to reconnect to the JMS broker in 30 seconds 
Info: 2017-06-06 11:43:40,060 [jb-thread-pool1] INFO ActiveMQEndpointWorker   - Stopping 

L'arrêt à la fin est due à l'annulation du déploiement je l'ai fait, parce que la même erreur viendrait toutes les trente secondes avec l'essai de rebranchement.

Je ne suis pas tout à fait sûr, où l'erreur est. Le port est 6616 en passant n'est pas une faute de frappe, c'est le port réel où ActiveMQ est en cours d'exécution, car le port 61616 est utilisé par un autre processus.

Pouvez-vous s'il vous plaît me donner un indice, sur où chercher l'erreur? A propos: Lorsque j'envoie un message dans la file d'attente avec le client autonome, aucune exception n'est levée (donc cela semble fonctionner.) Cependant, je ne peux pas non plus envoyer de message via la console d'administration ActiveMQ pour le serveur.

Merci beaucoup ...

Répondre

1

Selon http://activemq.apache.org/vm-transport-reference.html, lors de l'utilisation de tranport de ActiveMQ, il devrait être le nom du courtier après "vm: //".

Si vous souhaitez utiliser l'adresse IP et le port, config ainsi:

vm:(broker:(tcp://localhost:6000)?persistent=false)?marshal=false 
+0

Merci Okay qui ont aidé. Maintenant, les journaux disent 'Connexion établie avec succès au courtier [vm: broker: (tcp: //0.0.0.0))]'. Et aussi je reçois des messages. Vous êtes un sauveur :) –

+0

Y at-il une raison pour laquelle je dois attendre environ 1 minute jusqu'à ce que je reçois un message dans les journaux du serveur de la console d'administration activemq? –

+0

@FabianSchneider Cela ne semble pas normal. Mais je ne peux pas comprendre pourquoi le retard de 1 minute en ce moment. peut-être une raison très détaillée. – Solo