2014-05-23 36 views
0

我的Java應用程序通過Java web start運行,我正在使用瀏覽器的會話ID從Web服務器下載文件。它在Java 7更新51之前工作正常,但在Java 7更新51上失敗。以下是代碼。 HTTP URL沒有問題。問題只發生在HTTPSURL上。Java 7更新時HTTPSURLConnection失敗51

當Java應用程序與HTTPS URL建立連接時,Web服務器不會將URL視爲有效的URL。

 URL webURL = new URL(m_url); 
    conn = webURL.openConnection(); 
    conn.setRequestProperty("Cookie", cookie); 

Cookie具有有效的會話ID。在Java 7更新51之前,這個工作正常。

有關HTTPS URL連接的Java 7更新51上的任何內容已更改?

似乎是Java Web Start在發送實際的HTTPS請求之前發送空的HTTPS請求。再次發生這種情況只發生在Java 7更新51之後。

+0

JNLP文件中

  • 更改codebase屬性值它可能不是同一個問題,但在一個點上我也有類似的問題 - 一個連接可以使用一個JDK,但不能使用另一個JDK。這個問題是由默認的HTTP處理程序引起的。也許嘗試創建URL並指定處理程序?像這樣'URL url = new URL(null,m_url,new sun.net.www.protocol.http.Handler()); ' – DHall

  • 回答

    0

    空HTTPS請求的根本原因在JNLP代碼的下方。

    **<jnlp codebase="https://20.107.21.23:443" spec="1.0+">** 
    

    以兩種方式找到解決方案。

    1. 變化的Web服務器代碼 當Web服務器接收空HTTPS請求,沒有爲這一請求設置的cookie。如下

      **<jnlp codebase="https://*20.107.21.23:443" spec="1.0+">** 
      

      **<jnlp codebase="https://20.107.21.23:443/*" spec="1.0+">**