Grizzly / Glassfish - Не могу установить рукопожатие - PullRequest
2 голосов
/ 01 апреля 2012

Я пытаюсь заставить WebSockets работать поверх Grizzly / Glassfish.Я клонировал пример приложения чата WebSockets , собрал его и развернул на Glassfish 3.1.2.Однако я не могу подключить WebSockets.Рукопожатие WebSockets терпит неудачу, потому что я получаю ответ 405 (Метод не разрешен).Это имеет смысл из-за того, что находится в сервлете:

public class WebSocketsServlet extends HttpServlet {

    private final ChatApplication app = new ChatApplication();

    @Override
    public void init(ServletConfig config) throws ServletException {
        WebSocketEngine.getEngine().register(app);
    }

    @Override
    public void destroy() {
        WebSocketEngine.getEngine().unregister(app);
    }
}

Не указан метод doGet, поэтому мне интересно, требуется ли где-то дополнительная конфигурация, или вам нужно реализовать логику рукопожатия вметод doGet сервлета самостоятельно?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Я пытался использовать grizzly-websockets-chat-2.1.9.war на glassfish 3.1.2 и получал ту же ошибку.

Следовал советам с этой страницы http://www.java.net/forum/topic/glassfish/glassfish/websocket-connection-not-establishing-glasshfish-server-how-fix-it-0

, в котором говорится об использовании найденной здесь версии (я думаю, что версия будет указывать, что она старше, однако отметки времени в файлах - 30 января 2012 г.):

ВОЙНА

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.grizzly.samples&a=grizzly-websockets-chat&v=1.9.46&e=war

ИСТОЧНИКИ

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.grizzly.samples&a=grizzly-websockets-chat&v=1.9.46&e=jar&c=sources

Используя эту войну, все работает.

Для тех, кто любит использовать веб-консоль Glassfish. Вы можете включить веб-сокеты:

Конфигурации> server-config> Network Config> Protocols> http-listener-1, затем вкладка HTTP> Прокрутите вниз и отметьте опцию поддержки Websockets.

Примечание Конфигурации> default-config> ... также имеет те же параметры

Возможно, вы обнаружите, что этот континент больше, чем терминал.

1 голос
/ 01 апреля 2012

Похоже, вы не включили поддержку веб-сокетов (по умолчанию отключено).

Введите следующую команду и перезапустите сервер:

asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.websockets-support-enabled = true

Вы можете заменить http-listener-1 на любой http-слушатель, какой пожелаетевключить поддержку WS для.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...