1 Reply Latest reply on Feb 16, 2015 1:15 AM by renannp

    Websocket connetion fails (404) when deployed to server, fine on localhost

    zeus3324

      I created and tested a Java EE 7 application that uses WebSockets on my local PC. All works fine when I deploy to WildFly 8 on my local machine, and access the application using localhost.

       

      When I deploy the same application on a cloud server, (Ubuntu 14.04) with exactly the same WildFly configuration, I get the following message when the application tries to connect:

       

          "NetworkError: 404 Not Found - http://178.11.11.11:8080/pss/ws/notification"

          Firefox can't establish a connection to the server at ws://178.11.11.11:8080/pss/ws/notification.

       

      I can access the application, it is just the websocket connection that fails.

       

      pss is my context root, and the websocket end point is annotated with @ServerEndpoint("/ws/notification"), so the URL is correct and works 100% on my local machine using localhost.

       

      When I deploy the application I can see that the websocket endpoint has been picked up by WildFly, so this is not the issue

       

          2015-02-14 14:18:21,200 INFO  [io.undertow.websockets.jsr] (MSC service thread 1-2) UT026003: Adding annotated server endpoint class za.co.ssms.interfaces.websocket.NotificationWebSocket for path /ws/notification

       

      The request headers are correct:

       

          Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

          Accept-Encoding    gzip, deflate

          Accept-Language    en-US,en;q=0.5

          Cache-Control    no-cache

          Connection    keep-alive, Upgrade

          Cookie    JSESSIONID=mgFhI1MAZwT2NwULXDXgEaXt.app

          Host    178.11.11.11:8080

          Origin    http://178.11.11.11:8080

          Pragma    no-cache

          Sec-WebSocket-Key    LD55xYAKjJoXgLXQpUS7fA==

          Sec-WebSocket-Version    13

          Upgrade    websocket

          User-Agent    Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:35.0) Gecko/20100101 Firefox/35.0

       

      I am accessing the application using the following URL (IP modified), and the ports match:

       

          http://178.11.11.11:8080/pss/

       

      If I run netstat -an | grep 'LISTEN' on my cloud server I get the following, which shows that 0.0.0.0:8080 is bound and listening:

       

          tcp        0      0 127.0.0.1:9990          0.0.0.0:*               LISTEN    

          tcp        0      0 0.0.0.0:3528            0.0.0.0:*               LISTEN    

          tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN    

          tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN    

          tcp        0      0 0.0.0.0:8787            0.0.0.0:*               LISTEN    

          tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN    

          tcp6       0      0 :::22                   :::*                    LISTEN    

          unix  2      [ ACC ]     STREAM     LISTENING     9227     /var/run/acpid.socket

          unix  2      [ ACC ]     STREAM     LISTENING     7014     @/com/ubuntu/upstart

          unix  2      [ ACC ]     STREAM     LISTENING     8907     /var/run/dbus/system_bus_socket

          unix  2      [ ACC ]     STREAM     LISTENING     9448     /var/run/mysqld/mysqld.sock

          unix  2      [ ACC ]     SEQPACKET  LISTENING     7666     /run/udev/control

       

      Apache is not installed so this is a direct connection to Wildfly server.

       

      After several days I am pretty stumped as to why this is failing.

       

      Has any body experienced this before and have a solution, or do you have a way to toubleshoot this further.

       

      Thanks