2017-06-17 285 views
1

我正在學習Spring WebSocket。我已經成功運行了這個Spring WebSocket教程。現在我試圖在我現有的Spring MVC應用程序中將按原樣併入。當我從Chrome瀏覽器運行它時,我在其dev控制檯中看到下面的錯誤。SockJS無法創建/連接到Spring WebSocket

Chrome的控制檯

Opening Web Socket... 
GET http://localhost:8080/MyAppName/api/gs-guide-websocket/info?t=1497735312528 500 (Internal Server Error) -- abstract-xhr.js:132 
Whoops! Lost connection to http://localhost:8080/MyAppName/api/gs-guide-websocket -- stomp.min.js:8 

服務器端錯誤

javax.servlet.ServletException: Could not resolve view with name '/MyAppName/api/gs-guide-websocket/info' in servlet with name 'MyAppName' 
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1262) 
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) 

客戶端

function connect() { 
    var socket = new SockJS('/MyAppName/api/gs-guide-websocket'); 
    stompClient = Stomp.over(socket); 
    stompClient.connect({}, function (frame) { 
     setConnected(true); 
     console.log('Connected: ' + frame); 
     stompClient.subscribe('/topic/greetings', function (greeting) { 
      showGreeting(JSON.parse(greeting.body).content); 
     }); 
    }); 
} 

服務器端

@Configuration 
@EnableWebSocketMessageBroker 
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { 

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

    @Override 
    public void registerStompEndpoints(StompEndpointRegistry registry) { 
     registry.addEndpoint("/MyAppName/api/gs-guide-websocket").withSockJS(); 
    } 

} 

我試圖解決現在這個爲幾個小時。我該如何解決這個問題?

TY

+0

你解決呢?我看到mt有同樣的問題... – Juan

回答

0

如果你的應用環境是MyAppName那麼你並不需要在addEndpoint方法來指定它 - 這個路徑是相對於你的aaplication上下文。

大概registry.addEndpoint("/MyAppName/api/gs-guide-websocket")註冊與路徑端點/MyAppName/MyAppName/api/gs-guide-websocket

相關問題