2017-08-17 118 views
0

我是Java EE 7 websocket原理的新手。Websocket端點返回404

我有一個Java EE 7服務器部署在Wildfly 10.

我已經配置的上下文路徑和應用路徑。我能夠通過http://localhost:8080/context_path/app_path/something訪問服務器。

現在,我宣佈一個簡單的ServerEndpoint:

@Stateful 
@ServerEndpoint("websockets/stream") 
public class StreamServerEndpoint { 

    private static final Logger LOG = Logger.getLogger(StreamServerEndpoint.class); 

    @Inject 
    ByteBufferStore byteBufferStore; 

    @Inject 
    private EventListener listener; 

    @OnOpen 
    public void open(Session session) { 
     LOG.info("Session opened and registered"); 
     listener.register(session); 
    } 

    @OnMessage 
    public void message(Session session, ByteBuffer buffer) { 
     LOG.info("Message retrieved"); 
     session.getUserProperties().put("buffer", buffer); 
     //byteBufferStore.retrieve().ifPresent(byteBuffer -> Common.sendBuffer(session, buffer)); 
    } 

    @OnClose 
    public void close(Session session) { 
     listener.unregister(session); 
    } 
} 

在另一邊,我有一個外部角2項目,該項目應該連接到WebSocket的,但我得到的錯誤狀態代碼:404,200,取決於鏈接。

我得到200本:

ws://localhost:8080 

我得到404(無握手可能)與此:

ws://localhost:8080/context_path/app_path/websockets/stream 

我能做些什麼來達到的WebSocket?顯然我的URL不正確,或者我編寫服務器端點的方式是完全錯誤的。

+0

那麼,404沒有找到,沒有握手可能。你可以使用不同的websocket客戶端連接到服務器嗎? –

+0

不幸的是,來自不同websocket客戶端的請求沒有到達服務器。 – cayz

+0

請參考下面的URL運行示例 https://examples.javacodegeeks.com/core-java/real-time-applications-angularjs-java-part-3/ https://coderwall.com/p/uhqeqg/HTML5-的WebSocket與 - angularjs –

回答

0

聽起來好像websocket根本不在 - 根據你的WildFly版本,它們可能需要啓用。嘗試添加

<enable-websockets>true</enable-websockets> 

jboss-web.xml

0

jboss-web節點下我找到了解決辦法。我不好,WebSocket的是錯誤的模塊(EJB)在..移動類網絡模塊解決它。