我具有在WebLogic 12.2.1的Web应用程序中部署的以下代码。它对内部服务器进行HTTPS(双向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()语句都将打印到服务器的日志文件。这意味着我的标准输出和标准错误已经正确配置。

提前致谢。

最佳答案

尝试设置标准输出调试:

-Dweblogic.StdoutDebugEnabled=true


或者您的情况:

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


您还可以在服务器控制台中检查设置(类似host:port / console):

服务器-> [服务器名]->记录。底部(您可能需要展开菜单)是日志过滤器设置。标准日志仅记录严重性大于INFO的消息



最终答案(摘自我自己的评论):

将SSL调试语句设置为Weblogic的启动参数,看起来好像在运行时设置它们不起作用。但是,如果在startWeblogic.cmd或startWeblogic.sh文件中将它们设置为-D参数,则应该可以使用

09-04 10:12
查看更多