Activemq setup - Impossible d'envoyer le message à la File d'attente (erreur java.io.IOException: Inconnu type de données: 47)
J'ai installé ActiveMQ et pourrait accéder à l'url: http:/**/admin/files d'attente.jsp.
Lorsque je tente de déposer un message à une file d'attente, je suis au-dessous de erro.
L'exemple de code est donné ci-dessous
public class MessageReceiver {
public static void main(String[] args) throws JMSException {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-beans.xml");
JmsTemplate jmsTemplate=(JmsTemplate) context.getBean("jmsTemplate");
jmsTemplate.send(
new MessageCreator() {
public ObjectMessage createMessage(Session session) throws JMSException {
ObjectMessage message = session.createObjectMessage();
message.setObject("My first Message");
return message;
}
} );
System.out.println("MESSAGE SENT TO myMessageQueue");
Message receivedMessage=jmsTemplate.receive("queue");
ObjectMessage msg = (ObjectMessage)receivedMessage;
System.out.println("Message Received :"+msg.getObject().toString());
}
Printemps xml est
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://**:8161</value>
</property>
<property name="userName">
<value>admin</value>
</property>
<property name="password">
<value>admin</value>
</property>
</bean>
<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="queue" />
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="destination" />
</bean>
Erreur est
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: Unknown data type: 47
at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:534)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:526)
at com.example.example.MessageReceiver.main(MessageReceiver.java:15)
Caused by: javax.jms.JMSException: Unknown data type: 47
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1435)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1522)
at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:328)
at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:457)
... 3 more
Caused by: java.io.IOException: Unknown data type: 47
at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:348)
at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:268)
at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
at java.lang.Thread.run(Thread.java:662)
Quelqu'un peut-il m'aider à résoudre cela? Merci..
stackoverflow m'a montré une erreur quand j'ai tapé "localhost" quand j'type de la question. ** dans l'url n'est pas un problème
OriginalL'auteur user1514499 | 2014-11-15
Vous devez vous connecter pour publier un commentaire.
L '"Inconnu type de données: 47' erreur est due à la configuration que vous utilisez pour la suite de l'URL de courtier:
Le problème est que le numéro de port est incorrect. Port 8161 est où le ActiveMQ de la console web s'exécute. C'est ce qui explique le message d'erreur et la trace de la pile que vous voyez. Chaque fois que vous visitez le site web de la console pour le courtier à cette adresse (*:8161) l'exception est levée.
Pour résoudre ce problème, modifiez le numéro de port pour le port sur lequel le ActiveMQ de transport TCP est à l'écoute. Je hasarder une conjecture que c'est probablement le numéro de port par défaut de 61616
Merci. c'est le correctif. vous êtes des grands..
Vous êtes les bienvenus 🙂
OriginalL'auteur SMA
Je pense que la suite est de la faute:
dans votre xml.
Assurez-vous de mettre l'adresse réelle.
OriginalL'auteur mattias
Juste pour qui, comme moi, avait eu la même erreur, même si brokerURL a été correctement définie.
Vérifier l'utilisation de la ProducerTemplate classe: dans mon code, par exemple, j'ai raté le ExchangePattern paramètre dans la sendBody méthode du producteur.
Espérons que cette aide
OriginalL'auteur user3078881