2017-11-06 18 views
0

私はクライアントAngular 2アプリケーションとSpringブート(1.4.1.RELEASE)サーバーアプリケーションを持っています。私は、角度ライブラリng2-stomp-serviceと接続要求を管理するためのサーバーコードを使用して、サーバーに接続要求を送信するためのクライアントコードを書きました。ng2-stomp-serviceはhttpsのSpringサーバーに接続しません

HTTPを使用する場合は、すべてが正常に動作しますが、HTTPSを使用しているとき、私はJavaScriptコンソールに接続エラー(HTTP/1.1 400)を参照してください。私はリクエストとレスポンスヘッダを見つけたのFirefoxでは

GET https://tomcatunisvid.lunagest.com/unisvid/workflow/046/mmesis4u/websocket [HTTP/1.1 400 358ms] 

Firefox non può stabilire una connessione con il server wss://tomcatunisvid.lunagest.com/unisvid/workflow/046/mmesis4u/websocket. 

- リクエストヘッダ

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encodinggzip, deflate, br 
Accept-Language it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3 
Cache-Control no-cache 
Connection keep-alive, Upgrade 
Host tomcatunisvid.lunagest.com 
Origin https://tomcatunisvid.lunagest.com 
Pragma no-cache 
Sec-WebSocket-Extensions permessage-deflate 
Sec-WebSocket-Key J2Aqm3n2r6vcE7F8SrPr3w== 
Sec-WebSocket-Version 13 
Upgrade websocket 
User-AgentMozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0 

- レスポンスヘッダ

Access-Control-Allow-Credentials true 
Access-Control-Allow-Originh ttps://tomcatunisvid.lunagest.com 
Cache-Control no-cache, no-store, max-age=0, must-revalidate 
Connection close 
Date Mon, 06 Nov 2017 11:50:42 GMT 
Expires 0 
Pragma no-cache 
Server Apache/2.4.18 (Ubuntu)Transfer-Encoding chunked 
Vary Origin 
X-Content-Type-Options nosniff 
X-Frame-Options DENY 
X-XSS-Protection1; mode=block 

と応答が空です。ここで

は私の関連するクライアントコードは次のようになります。この問題を解決する方法

@Configuration 
@EnableWebSocketMessageBroker 
public class WebSocketConfig extends 
AbstractWebSocketMessageBrokerConfigurer { 

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

    @Override 
    public void registerStompEndpoints(StompEndpointRegistry registry) { 
     SessionDisconnectionListener sdl = new SessionDisconnectionListener(); 

     String endpoint = "/workflow"; 

     registry.addEndpoint(endpoint). 
      setAllowedOrigins("*").withSockJS(); 

     registry.addEndpoint(endpoint).setHandshakeHandler(new DefaultHandshakeHandler(new TomcatRequestUpgradeStrategy())). 
      setAllowedOrigins("*").withSockJS(); 

    } 

} 

任意のヒント:ここで

// In the constructor, where stomp is a StompService: 

stomp.configure({ 
    host: this.url, 
    debug: true, 
    queue: { 'init': false, '/user/queue/user/reply': false }, 
    // headers: { 'upgrade': 'WebSocket' } 
}); 

// in another method: 

this.stomp.startConnect(). 
    then(() => this.openSocket_OK_Callback(this)). 
    catch((error) => this.openSocket_KO_Callback(this, error)); 

は私の関連するサーバーのコードですか?

答えて

0

私はここで、いくつかのデバッグ後に見つけた答えを、他の人にとって役に立ちます。リリース環境ではTomcatはApache Http Serverによってプロキシされました。この場合の解決策は、Apache Http Serverを削除し、TomcatでHttpsを直接設定することでした。

関連する問題