Не найдено подходящего по умолчанию RequestUpgradeStrategy в Resin 4 - PullRequest
0 голосов
/ 17 января 2019

Resin 4 поддерживает Spring-websocket?

Я хочу загрузить клиентские приложения, использующие Spring-websocket (spring-websocket 4.3.17) на Resin4 (Resin 4.0.59 64bit для Windows / Linux).

Но, когда я пытался загрузить, появляются журналы ошибок:

java.lang.IllegalStateException: No suitable default RequestUpgradeStrategy found
                    at org.springframework.web.socket.server.support.AbstractHandshakeHandler.initRequestUpgradeStrategy(AbstractHandshakeHandler.java:143)
                    at org.springframework.web.socket.server.support.AbstractHandshakeHandler.<init>(AbstractHandshakeHandler.java:109)
                    at org.springframework.web.socket.server.support.DefaultHandshakeHandler.<init>(DefaultHandshakeHandler.java:35)
                    at org.springframework.web.socket.config.annotation.AbstractWebSocketHandlerRegistration.getOrCreateHandshakeHandler(AbstractWebSocketHandlerRegistration.java:151)
                    at org.springframework.web.socket.config.annotation.AbstractWebSocketHandlerRegistration.getMappings(AbstractWebSocketHandlerRegistration.java:138)
                    at org.springframework.web.socket.config.annotation.ServletWebSocketHandlerRegistry.getHandlerMapping(ServletWebSocketHandlerRegistry.java:98)
                    at org.springframework.web.socket.config.annotation.WebSocketConfigurationSupport.webSocketHandlerMapping(WebSocketConfigurationSupport.java:35)
                    at org.springframework.web.socket.config.annotation.DelegatingWebSocketConfiguration$$EnhancerBySpringCGLIB$$d2296534.CGLIB$webSocketHandlerMapping$2(<generated>)
                    at org.springframework.web.socket.config.annotation.DelegatingWebSocketConfiguration$$EnhancerBySpringCGLIB$$d2296534$$FastClassBySpringCGLIB$$2a78eb90.invoke(<generated>)
                    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
                    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
                    at org.springframework.web.socket.config.annotation.DelegatingWebSocketConfiguration$$EnhancerBySpringCGLIB$$d2296534.webSocketHandlerMapping(<generated>)
                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                    at java.lang.reflect.Method.invoke(Method.java:606)
                    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
                    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
                    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1181)
                    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1075)
                    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
                    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
                    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
                    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
                    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
                    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
                    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
                    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
                    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
                    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
                    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
                    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
                    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
                    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
                    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
                    at javax.servlet.GenericServlet.init(GenericServlet.java:70)
                    at com.caucho.server.dispatch.ServletConfigImpl.createServletImpl(ServletConfigImpl.java:1376)
                    at com.caucho.server.dispatch.ServletConfigImpl.createServlet(ServletConfigImpl.java:1272)
                    at com.caucho.server.dispatch.ServletConfigImpl.createServlet(ServletConfigImpl.java:1223)
                    at com.caucho.server.dispatch.ServletManager.init(ServletManager.java:252)
                    at com.caucho.server.webapp.WebApp.startImpl(WebApp.java:3859)
                    at com.caucho.server.webapp.WebApp.access$700(WebApp.java:209)
                    at com.caucho.server.webapp.WebApp$StartupTask.run(WebApp.java:5411)
                    at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
                    at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

Когда я загружаю другие приложения, которые используют другой WebSocket (vertx), он работает хорошо, как я ожидал.

Но приложения, использующие Spring-Websocket, выдают ошибку.

Я просто гуглю эту проблему, и у меня есть какое-то решение, но это решение для Tomcat, новейшей версии Jetty илидобавить некоторые зависимости ...

Итак ... Есть ли решение для Resin 4 ???

или Resin 4 не поддерживает Spring-websocket ???

...