Websocket端点返回404

Websocket端点返回404

问题描述:

我是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 –

听起来好像websocket根本不在 - 根据你的WildFly版本,它们可能需要启用。尝试添加

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

jboss-web.xml

jboss-web节点下我找到了解决办法。我不好,WebSocket的是错误的模块(EJB)在..移动类网络模块解决它。