Как настроить и развернуть WebSocket на WSO2 AS 5.2.1?

У меня есть работающее веб-приложение JAX-RS, которое реализует некоторые службы RESTfull. Я разработал его в WSO2 Studio и развернул с помощью веб-интерфейса WSO2 AS, все очень просто.

Теперь я хочу добавить в свое WebApp возможность открывать WebSocket. Я не нашел стандартной процедуры или примеров в документации WSO2 AS. Мой вопрос:

  1. Возможно ли это сделать?
  2. Могу ли я иметь реализацию RESTfull и WebSocket в одном военном пакете? Есть пример для этого? Лучше всего на WSO2 AS.
  3. Как настроить приложение WebSocket и развернуть его на WSO2 AS?

Спасибо.

ОБНОВЛЕНИЕ

Я написал это чрезвычайно простое приложение для веб-сокетов:

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 (моментальный снимок), веб-сокет недоступен. Я не понимаю, что я делаю неправильно.


person Elia    schedule 06.08.2015    source источник


Ответы (2)


WSO2 AS 5.2.1 имеет поддержку Websocket (для Tomcat). Вы можете найти «пример» веб-приложения в папке $AS_HOME/repository/deployment/server/webapps.

Но стандартная (JSR356) поддержка Websocket недоступна в WSO2 AS 5.2.1. Он будет доступен в WSO2 AS 5.3.0, который будет выпущен очень скоро. Альфа-версия WSO2 AS 5.3.0 уже выпущена, и вы можете попробовать поддержку веб-сокетов, используя альфа-пакет. Запустите сервер, укажите в браузере http://localhost:9763/example/websocket/index.xhtml и вы найдете там четыре примера веб-сокетов. Вы можете ознакомиться с сообщением о выпуске, чтобы узнать о новых функциях WSO2 AS 5.3.0.

person Rajkumar Rajaratnam    schedule 06.08.2015
comment
Но, может быть, есть решение проблемы? В доступных примерах (думаю, Tomcat) есть также WebSocket (эхо, змейка и чат). Что вы думаете об этом? - person Elia; 06.08.2015
comment
Я внес некоторые изменения в свой ответ - пожалуйста, взгляните на него еще раз. Да, WSO2 AS 5.2.1 имеет некоторую поддержку Websocket на основе конкретной реализации tomcat. Вы можете найти пример веб-приложения в папке $AS_HOME/repository/deployment/server/webapps. Вы можете получить представление из этого образца. Стандартная реализация Websocket на основе JSR356 будет доступна в версии 5.3.0. - person Rajkumar Rajaratnam; 06.08.2015

Как упомянул @Rajkumar, если вам нужно использовать стандартный веб-сокет на основе JSR356, вы должны использовать WSO2-AS 5.3.0 Alpha. Но все же вы можете использовать предыдущие версии wso2-as (5.2.1) для конкретных реализаций веб-сокетов tomcat.

Если вы хотите вызвать веб-сокет с помощью jaxrs, вы можете обратиться к тестовому примеру веб-сокета в github-product-as

Для реализации веб-сокета на основе tomcat вы можете ссылаться на образцы веб-сокета tomcat либо из источника tomcat, либо из https://github.com/wso2/product-as/tree/wso2appserver-parent-6.0.0/modules./samples/common/webapp/src/main/java/websocket

person Thusitha Thilina Dayaratne    schedule 06.08.2015