2017-01-17 73 views
0

我在WebLogic 12.2.1的Web應用程序中部署了以下代碼。它向內部服務器提供HTTPS(雙向SSL)。在WebLogic中啓用SSL調試

System.setProperty("javax.net.ssl.keyStoreType", identityKeyStoreType); 
    System.setProperty("javax.net.ssl.keyStore", identityKeyStore); 
    System.setProperty("javax.net.ssl.keyStorePassword", identityKeyStorePassword); 
    System.setProperty("javax.net.ssl.trustStoreType", trustKeyStoreType); 
    System.setProperty("javax.net.ssl.trustStore", trustKeyStore); 
    System.setProperty("javax.net.ssl.trustStorePassword", trustKeyStorePassword); 

    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { 
     public boolean verify(String hostName, SSLSession session) { 
      return true; 
     } 
    }); 

    URL url = new URL(null, serviceURL, new sun.net.www.protocol.https.Handler()); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    ... 

該代碼工作正常。我想啓用SSL調試,所以我加的代碼如下:

System.setProperty("weblogic.security.SSL.verbose", "true"); 
    System.setProperty("ssl.debug", "true"); 
    System.setProperty("javax.net.debug", "all"); 

出於某種原因,調試似乎沒有打開,因爲我看不到任何的調試日誌WebLogic日誌文件。可能是什麼問題呢?

請注意System.out.println()和System.err.println()語句都將打印到服務器的日誌文件。這意味着我的標準輸出和標準錯誤已經正確配置。

在此先感謝。

回答

0

嘗試設置標準進行調試:

-Dweblogic.StdoutDebugEnabled=true 

或在您的情況:

System.setProperty("weblogic.StdoutDebugEnabled", "true"); 

而且你還可以檢查服務器控制檯的設置(類似於主機:端口/控制檯):

服務器 - > [服務器名稱] - >記錄。在底部(您可能需要展開菜單)是日誌過濾器設置。標準日誌只記錄消息的嚴重性大於INFO


最終的答案(我自己的評論複製):

設置SSL調試報表的Weblogic的啓動參數,而不是,它看起來好像設置它們在運行時不起作用。但它應該工作,如果您將它們設置爲-D參數在startWeblogic.cmd或startWeblogic.sh文件

+0

我已將「weblogic.StdoutDebugEnabled」設置爲true,然後我問這個問題,但它沒有任何區別。在WebLogic控制檯中,在服務器的「日誌記錄」部分的「高級」下,我還將「啓用重定向標準輸出記錄」和「啓用重定向標準錯誤日誌記錄」設置爲true,並將「最低日誌嚴重性:」設置爲TRACE(它最初是INFO)但是所有這些都沒有什麼區別,因爲我仍然沒有在任何日誌文件中看到SSL調試語句 – user3573403

+0

噢,我明白了,將SSL調試語句設置爲Weblogic的啓動參數,看起來好像在運行時設置它們不起作用,但是如果在startWeblogic.cmd或startWeblogic.sh文件中將它們設置爲-D Paramter(至少在全新的12.1.3安裝中) – Slettal

+0

Hi Slettal,你是對的,我必須在WebLogic啓動時設置它,在運行時設置不起作用,謝謝你的幫助。 – user3573403