我有一个可以实现一些RESTfull服务的JAX-RS webapp。我在WSO2 Studio下开发了它并使用WSO2 AS Web界面进行了部署,非常简单。
现在我想在我的WebApp上添加打开WebSocket的可能性。我没有在WSO2 AS文档中找到标准程序或示例。我的问题是:
谢谢。
更新
我已经编写了这个极端简单的websocket应用程序:
import java.io.IOException;
import javax.websocket.OnMessage;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/test")
public class TestSocket {
@OnMessage
public void onMessage(Session session, String message, boolean last) {
try{
if(session.isOpen()){
session.getBasicRemote().sendText("Received -> [" + message + "]", last);
}
}catch(IOException e){
try{
session.close();
}catch(IOException e1){
}
}
}
}
如果我部署在Tomcat服务器上,如果我部署在WSO2 AS 5.3.0(快照)上,则无法访问websocket。我不明白我做错了什么。
答案 0 :(得分:1)
WSO2 AS 5.2.1具有Websocket(特定于tomcat)支持。您可以在$AS_HOME/repository/deployment/server/webapps
文件夹中找到“示例”webapp。
但是WSO2 AS 5.2.1中没有标准(JSR356)Websocket支持。它将在WSO2 AS 5.3.0中提供,该版本将很快发布。 WSO2 AS 5.3.0 Alpha已经发布,您可以使用alpha pack试用Web套接字支持。启动服务器,将浏览器指向http://localhost:9763/example/websocket/index.xhtml,您将在那里找到四个Web套接字示例。您可以查看release mail以了解WSO2 AS 5.3.0中的新功能。
答案 1 :(得分:0)
正如@Rajkumar所提到的,如果你需要使用基于JSR356的标准websocket,你必须使用WSO2-AS 5.3.0 Alpha。但是你仍然可以使用以前的wso2-as版本(5.2.1)来实现tomcat特定的websocket实现。
如果要使用jaxrs调用websocket,可以参考github-product-as
中的websocket测试用例对于基于tomcat的websocket实现,你可以从tomcat源或https://github.com/wso2/product-as/tree/wso2appserver-parent-6.0.0/modules/samples/common/webapp/src/main/java/websocket
引用tomcat websocket样本