Использование API WebSocket со Struts 2

У меня есть веб-приложение Struts2, работающее на Tomcat 7.0.43, которое использует плагины Rest и Convention для сопоставления всех запросов. Struts пытается отобразить все запросы самостоятельно.

JSR 356 определяет конечные точки сервера, используя аннотации, такие как

@ServerEndpoint(value = "/websocket/chat")

Теперь, когда брат пытается подключиться кws:/127.0.0.1:8080/websocket/chatзапрос не выполняется, потому что преобразователь Struts перехватывает запрос.

Могу ли я что-то указать в файлах XML, чтобы запрос достиг нужного места?

РЕДАКТИРОВАТЬ:

Как и предполагалось, я добавил

<constant name="struts.action.excludePattern" value="/websocket.*?" />

к моей конфигурации Struts, после чего URL / websocket / chat начал достигать ошибки 404.

Позже я узнал, что мне нужно настроитьServerApplicationConfig реализация. После этого websocket начинает работать нормально, но остальная часть моего приложения не загружается, выдавая ошибку:

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

Вот мой класс:

public class Socket implements ServerApplicationConfig {

    @Override
    public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> scanned) {

        Set<ServerEndpointConfig> result = new HashSet<ServerEndpointConfig>();

        return result;
    }

    @Override
    public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scanned) {

        Set<Class<?>> results = new HashSet<Class<?>>();
        for (Class<?> clazz : scanned) {
            results.add(clazz);
        }
        return results;
    }
}

Как я могу заставить все работать вместе в Гармонии?

Примечание. Я использую плагин Struts Spring для внедрения зависимостей Spring Security.

Ответы на вопрос(1)

Ваш ответ на вопрос