Nyg*_*ger 13 java tomcat websocket
我尝试运行这个例子:
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint(value = "/chat")
public class ChatServer {
private static final Logger LOGGER =
Logger.getLogger(ChatServer.class.getName());
@OnOpen
public void onOpen(Session session) {
LOGGER.log(Level.INFO, "New connection with client: {0}",
session.getId());
}
@OnMessage
public String onMessage(String message, Session session) {
LOGGER.log(Level.INFO, "New message from Client [{0}]: {1}",
new Object[] {session.getId(), message});
return "Server received [" + message + "]";
}
@OnClose
public void onClose(Session session) {
LOGGER.log(Level.INFO, "Close connection for client: {0}",
session.getId());
}
@OnError
public void onError(Throwable exception, Session session) {
LOGGER.log(Level.INFO, "Error for client: {0}", session.getId());
}
}
Run Code Online (Sandbox Code Playgroud)
我用Tomcat 7.0.47
,我检查链接:ws://localhost/Tests/chat
.我是否需要注册此websocket或添加一些内容web.xml
?知道为什么不适合我吗?
sam*_*ael 16
尝试在Tomcat 7.0.47上使用WebSocket API时遇到了同样的问题.客户端显示的错误消息根本没有任何帮助,我的服务器端端点从未被创建.
在浪费了很多时间后,我发现这是因为我设置了依赖性javax.websocket-api
.我正在使用具有默认范围的Maven,compile
因为Tomcat websocket-api.jar
在其lib文件夹中存在问题.设置依赖项以provided
解决它.
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
值得注意的是,如果在Apache后面运行,您将需要mod_proxy_wstunnel
并且如果使用IIS,您将需要8.0版,因为之前的任何东西都不支持websockets.
归档时间: |
|
查看次数: |
9708 次 |
最近记录: |