我具有在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参数,则应该可以使用