# NullPointerException bei Verbindung zu RabbitMQ-Server



## v87 (31. Dez 2011)

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.



```
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:


```
HostConnection hconn = new HostConnection();
```


Die Zugangdaten habe ich schon zig Male überprüft


----------



## turtle (31. Dez 2011)

Der Stacktrace der Exception ist vielleicht hilfreich und Du kannst ihn posten?


----------



## irgendjemand (1. Jan 2012)

v87 hat gesagt.:


> 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)*


----------



## v87 (2. Jan 2012)

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.


----------



## v87 (2. Jan 2012)

> 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...


----------

