gpt4 book ai didi

java - Axis2 客户端无法在 Tomcat 7.0.42 上启动第二个 https 调用

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:00 24 4
gpt4 key购买 nike

我正在尝试将 Java Axis2 客户端从 Websphere6/JRE1.5.x 迁移到 Solaris 上的 Tomcat 7.0.42/JRE1.6.x。在此过程中,我遇到了一个问题,即客户端第一次可以通过 https 与 web 服务通信,但由于 ssl 错误,从第二次尝试开始就会失败。

从显示的失败尝试日志中提取 -

%% Client cached [Session-1, SSL_RSA_WITH_RC4_128_MD5]
%% Try resuming [Session-1, SSL_RSA_WITH_RC4_128_MD5] from port 34092
** ClientHello, TLSv1
...
Thread-606, WRITE: TLSv1 Handshake, length = 179
Thread-606, READ: TLSv1 Alert, > length = 2
Thread-606, RECV TLSv1 ALERT: fatal, unexpected_message

实际的异常是(我怀疑是因为没有打开套接字)-

Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source) at java.io.BufferedOutputStream.flushBuffer(Unknown Source) at java.io.BufferedOutputStream.write(Unknown Source) at java.io.FilterOutputStream.write(Unknown Source) at org.apache.commons.httpclient.WireLogOutputStream.write(WireLogOutputStream.java:86) at org.apache.axis2.transport.http.AxisRequestEntity.writeRequest(AxisRequestEntity.java:89)

将其与 Websphere 环境中的日志进行比较,我发现了一些差异,因此我的问题是 -

  1. Tomcat 上的 SSL 配置是否会影响 Axis2 客户端调用不同服务器的行为?或者我的问题更多是在操作系统层面?

  2. 在旧环境中,我注意到缓存了不止一个 ssl session 。当在一个 session 上恢复失败时,它只是尝试使用不同的 session 并继续通话。然而,在新服务器上,我只看到一个 session 被创建并被缓存。恢复时,它一直尝试在不同的端口恢复相同的 session ,但一直失败。因为它是唯一的 session ,所以如果不能尝试不同的 session 也不能创建新 session 。我的问题是为什么只创建了一个 session ,启用多个 session 的缓存是否是一个配置问题?

非常感谢任何帮助/指点。

最佳答案

终于找到问题所在。以为我会在这里与可能遇到类似问题的任何人分享。事实证明,它与 JRE 本身的安全提供程序有关。这是有关如何配置它的链接-
http://pic.dhe.ibm.com/infocenter/ssp/v3r4/index.jsp?topic=%2Fcom.ibm.help.sspreleasenotes.doc%2FSSP_RN_RemovePKCS11SecurityProvider.html

似乎 Solaris 上的默认安全提供程序导致了我看到的奇怪行为。按照链接中的说明,通过使用 Java 默认提供程序,解决了我看到的 ssl 问题。

关于java - Axis2 客户端无法在 Tomcat 7.0.42 上启动第二个 https 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com