NullPointerException bei Verbindung zu RabbitMQ-Server

v87

Mitglied
Hallo Leute,

ich muss eine Verbindung zu einem RabbitMQ-Server aufbauen. Leider bekomme ich immer eine NullPointerException zurück. Ich kann leider keinen Fehler finden, mein Codeausschnitt stammt von der RabbitMQ-Seite.

Ich hoffe ihr könnt mir helfen.


Java:
public class HostConnection implements Serializable{
    
    private String EXCHANGE_NAME = "someExchanget";
    private String HOST_QUEUE_NAME = "someQueue";
    private String HOST_NAME = "**************";
    private String HOST_UNAME = "********";
    private String HOST_PWD = "*******";
    private int HOST_PORT = xxxxx;
    private Connection conn;
    private Channel channel;
    private ConnectionFactory factory;
    
    public HostConnection(){
        
        this.factory = new ConnectionFactory();
        factory.setHost(HOST_NAME);
        factory.setPort(HOST_PORT);
        factory.setUsername(HOST_UNAME);
        factory.setPassword(HOST_PWD);
        
        try {
            this.conn = factory.newConnection();
            
        } catch (IOException ex) {
            System.out.println("Connection to Server can't be established!");
        } 
        try {
            this.channel = conn.createChannel();
        } catch (IOException ex) {
            System.out.println("Can't create Channel");
        }
        try {
            channel.exchangeDeclare(EXCHANGE_NAME, "fanout");
        } catch (IOException ex) {
            System.out.println("Can't declare Exchange");
        }
        try {
            channel.queueDeclare(HOST_QUEUE_NAME, true, true, false, null);
        } catch (IOException ex) {
            System.out.println("Can't declare QUEUE");
        }
        try {
            channel.queueBind(HOST_QUEUE_NAME, EXCHANGE_NAME, "");
        } catch (IOException ex) {
            System.out.println("Can't bind QUEUE");
        }
        
        
    }


...so erzeuge ich dann das Objekt:

Java:
HostConnection hconn = new HostConnection();


Die Zugangdaten habe ich schon zig Male überprüft
 
bekomme ich immer eine NullPointerException zurück. Ich kann leider keinen Fehler finden

wir auch nicht ohne den StackTrace ...


btw : ich kenne zwar das framework und die klassen nicht ... aber baut man factory-klassen nicht immer das diese

1) nicht direkt instanziert werden können
2) dementsprechend alle parameter in der factory-methode welche eine instanz liefert übergeben bekommen
3) teilweise sigelton-pattern verwenden um resourcen zu schonen

so würde ich jetzt zumindest eine factory-klasse schreiben *gibt es in java auch ... sieh dir z.b. mal den ganzen crypto-kram an ... da hast du auch nur statische factory-methoden nach dem motto : getInstance(String)*
 
hier der stacktrace:

Schwerwiegend: null
java.net.ConnectException: Die Wartezeit für die Verbindung ist abgelaufen
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at com.rabbitmq.client.ConnectionFactory.createFrameHandler(ConnectionFactory.java:441)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:480)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:509)
at network.HostConnection.run(HostConnection.java:45)
at controller.GameController.startNetworkGame(GameController.java:386)
at controller.GameController.actionPerformed(GameController.java:305)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

@irgendjemand: ich weiß leider nicht was du meinst...bin wenig vertraut mit netzwerkprogrammierung. bei dem projekt handelt es sich um ein programm, das wir für die uni machen müssen...den code für den verbindungsaufbau haben wir in der vorlesung bekommen.
Deswegen wundert mich auch, dass es nicht funktioniert.
 
Zuletzt bearbeitet:
Schwerwiegend: null
java.net.ConnectException: Die Wartezeit für die Verbindung ist abgelaufen

ok...es scheint also ein timeout zu geben. deswegen bekomme ich auch eine NPE. die frage ist nun, ob unsere server in der uni down sind oder ob ich einen fehler eingebaut habe...
 

Zurück
Oben