Search code examples
javajakarta-eeatmosphere

Atmosphere Pubsub example error on weblogic 12c


The pubsub example of atmosphere is deployed to weblogic 12c.

with the below small change i deployed the app

        var request = {

            url :document.location.toString()+'ws/pubsub/' + getElementByIdValue('topic'),

Gives the following error...

On server side
org.atmosphere.websocket.protocol.SimpleHttpProtocol BEA-000000 Status code higher or equal than 400 Status 405 Message Method Not Allowed

In script console(chrome)
Network
ERROR: 405:Method Not Allowed ERROR: 405:Method Not Allowed message=testing pubsub sent trying to use websocket

console
GET =1396276957934">http://localhost:7001/atmosphere/ws/pubsub/Test?X-Atmosphere-Transport=close&X-Atmosphere-tracking-id=&=1396276957934 400 (Bad Request) atmosphere.js:1816

WebSocket connection to 'ws://localhost:7001/atmosphere/ws/pubsub/Test?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.1.4-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&X-atmo-protocol=true' failed: Received a broken close frame containing a reserved status code.


Solution

  • Solved

    document.location.toString() 
    

    needs to be modified to

    document.location.origin+'/atmosphere/ws/pubsub/' 
    

    to skip the name of the html file(if not index.html) .

    The atmosphere handler will take care of the operation and connects to websockets as intended.

    The long polling needs to be addressed as a seperate url , as the weblogic-12c adds /ws/ to context path automatically, when it detects websocket stuff

    refer to complete solution