在Karaf OSGI下使用Stomp运行Spring WebSocket不发布端点

时间:2018-12-14 16:06:37

标签: spring websocket osgi stomp

我正在尝试使用Spring 4.3.21RELEASE和karaf 4.1在带有stomp的基础上运行基本的websocket服务器,但是该捆绑包正确启动,并且启动时未显示任何错误,但是websocket的端点未发布。以下是websocket的基本类。

控制器

@Controller
public class WebSocketController {


    @MessageMapping("/message")
    @SendToUser("/queue/reply")
    public String processMessageFromClient(@Payload String message, Principal principal,@Header("simpSessionId") String sessionId)  {


            String name = new Gson().fromJson(message, Map.class).get("name").toString();
            messagingTemplate.convertAndSendToUser(principal.getName(), "/queue/reply", name);
            return name;

    }

    @MessageExceptionHandler
    @SendToUser("/queue/errors")
    public String handleException(Throwable exception) {
        return exception.getMessage();
    }

}

Config

@Configuration

    @EnableWebSocketMessageBroker
    public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

        @Override
        public void configureMessageBroker(MessageBrokerRegistry config) {
            config.enableSimpleBroker("/topic/", "/queue/");
            config.setApplicationDestinationPrefixes("/app");
        }

        @Override
        public void registerStompEndpoints(StompEndpointRegistry registry) {
            registry.addEndpoint("/server").setAllowedOrigins("*");
        }

    }

在我的Spring上下文中,我为这些Spring类定义了bean,如下所示:

<bean id="ServerManagementController"
          class="WebSocketController"
          depends-on="WebSocketConfig">
    </bean>

    <bean id="WebSocketConfig"
            class="WebSocketConfig">
    </bean>

依赖项都已加载到POM中

 <!-- Spring -->
        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-core</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-beans</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-context</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-web</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-webmvc</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-expression</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-aop</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-jdbc</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-tx</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-context-support</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-websocket</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.spring-messaging</artifactId>
            <scope>provided</scope>
        </dependency>

任何人都可以对可能出现的问题有所了解吗?

谢谢

0 个答案:

没有答案