2016-11-01 9 views
0

Ich benutze unten Code für die Verbindung zu JMS.Ich kann keine Verbindung Fabrik erstellen, weil in PROD env, ich bin nur ein Verbraucher und nicht bewusst, welcher Server es installiert ist. Ich habe die Broker-URL, den Benutzernamen und das Passwort.ActiveMQ JMS: Unbekannter Datentyp -1

public class HelloWorldProducer implements Runnable { 
    public void run() { 
     try { 
      // Create a ConnectionFactory 
      ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("id972483","octitt123","tcp://ozoi6000:2506"); 

      // Create a Connection 
     Connection connection = connectionFactory.createConnection(); 

      connection.start(); 

      // Create a Session 
      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 

      // Create the destination (Topic or Queue) 
      Destination destination = session.createQueue("gw.oct.request.letterbusinesscommunication.v1.in.q"); 

      // Create a MessageProducer from the Session to the Topic or Queue 
      MessageProducer producer = session.createProducer(destination); 
      producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 

      // Create a messages 
      //String text = "Hello world! From: " + Thread.currentThread().getName() + " : " + this.hashCode(); 
      TextMessage message = session.createTextMessage(getXMLdata()); 
      message.setJMSCorrelationID("Sample_JMS_Test"); 

      // Tell the producer to send the message 
      System.out.println("Sent message: "+ message.hashCode() + " : " + Thread.currentThread().getName()); 
      producer.send(message); 

      // Clean up 
      session.close(); 
      connection.close(); 
     } 
     catch (Exception e) { 
      System.out.println("Caught: " + e); 
      e.printStackTrace(); 
     } 
    } 

Ich erhalte die Fehlermeldung wie folgt:

Caught: javax.jms.JMSException: Disposed due to prior exception 
javax.jms.JMSException: Disposed due to prior exception 
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72) 
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1413) 
    at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1478) 
    at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:527) 
    at HelloWorldProducer.run(HelloWorldProducer.java:25) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.activemq.transport.TransportDisposedIOException: Disposed due to prior exception 
    at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:125) 
    at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114) 
    at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114) 
    at org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:173) 
    at org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:344) 
    at org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:96) 
    at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:219) 
    ... 1 more 
Caused by: java.io.IOException: Unknown data type: -1 
    at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:359) 
    at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:278) 
    at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:240) 
    at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:232) 
    at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215) 
    ... 1 more 

Antwort

0

Was auf dem Port konfiguriert ist, zu dem Sie eine Verbindung aufbauen möchten? Sie sehen diese Art von Fehlern, wenn Sie versuchen, den JMS-Client mit einem Port zu verbinden, der ein anderes Protokoll als das OpenWire-Protokoll bedient, das der ActiveMQ JMS-Client spricht.

Wenn solche Fehler auftreten, ist es normalerweise eine gute Idee zu fragen, was der Broker tatsächlich konfiguriert ist, um

zu tun
Verwandte Themen