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不正确,或者我编写服务器端点的方式是完全错误的。
答
听起来好像websocket根本不在 - 根据你的WildFly版本,它们可能需要启用。尝试添加
<enable-websockets>true</enable-websockets>
您jboss-web.xml
答
的jboss-web
节点下我找到了解决办法。我不好,WebSocket的是错误的模块(EJB)在..移动类网络模块解决它。
那么,404没有找到,没有握手可能。你可以使用不同的websocket客户端连接到服务器吗? –
不幸的是,来自不同websocket客户端的请求没有到达服务器。 – cayz
请参考下面的URL运行示例 https://examples.javacodegeeks.com/core-java/real-time-applications-angularjs-java-part-3/ https://coderwall.com/p/uhqeqg/HTML5-的WebSocket与 - angularjs –