首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IBM MQ在SSL握手上抛出java.lang.UnsupportedOperationException

IBM MQ在SSL握手上抛出java.lang.UnsupportedOperationException
EN

Stack Overflow用户
提问于 2020-09-25 11:14:54
回答 5查看 959关注 0票数 2

调用时:

代码语言:javascript
运行
复制
MQQueueConnectionFactory cf ...
cf.createConnection();

com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.handshakeCompleted方法开始:

代码语言:javascript
运行
复制
public void handshakeCompleted(HandshakeCompletedEvent event) {
 X509Certificate[] peerCertificateChain = event.getPeerCertificateChain();
 ...

Javax.net.ssl.SSLSession中的getPeerCertificateChain:

代码语言:javascript
运行
复制
default X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException {
    throw new UnsupportedOperationException("This method is deprecated and marked for removal. Use the getPeerCertificates() method instead.");
}

导致此异常的原因:

代码语言:javascript
运行
复制
Exception in thread "HandshakeCompletedNotify-Thread" java.lang.UnsupportedOperationException: This method is deprecated and marked for removal. Use the getPeerCertificates() method instead.
    at java.base/javax.net.ssl.SSLSession.getPeerCertificateChain(SSLSession.java:295)
    at java.base/javax.net.ssl.HandshakeCompletedEvent.getPeerCertificateChain(HandshakeCompletedEvent.java:173)
    at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.handshakeCompleted(RemoteTCPConnection.java:2448)
    at java.base/sun.security.ssl.TransportContext$NotifyHandshake$1.run(TransportContext.java:685)
    at java.base/sun.security.ssl.TransportContext$NotifyHandshake$1.run(TransportContext.java:682)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/sun.security.ssl.TransportContext$NotifyHandshake.run(TransportContext.java:682)
    at java.base/java.lang.Thread.run(Thread.java:832)

该项目唯一的IBM MQ依赖项是:

代码语言:javascript
运行
复制
com.ibm.mq:com.ibm.mq.allclient:9.2.0.0

为什么javax.net.ssl.getPeerCertificateChain()调用那个被弃用的方法?看起来问题出在HandshakeCompletedEvent类中,而不是MQ中。

编辑:这个问题从Java 15开始。

EN

Stack Overflow用户

发布于 2021-11-30 11:34:53

IBM MQ client 9.2.4.0支持Java 17

https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/899/ENUSLP21-0278/index.html

MQ 9.2.4

  • 智能工作负载重新平衡通过对uniform clusters
  • Security增强功能的更新实现的,这些增强功能基于MQ中现有的强大安全机制,旨在确保您的任务关键型业务数据得到保护。
  • MQ客户端支持新的
  • 11 runtimes

支持™17 runtimes

  • MQ客户端

https://www.ibm.com/docs/en/ibm-mq/9.2?topic=wnim9-whats-new-in-mq-924-multiplatforms-base-advanced-entitlement#mq924_new_multibaseadv__java17support

IBM客户端的

Java17支持

  • IBM 9.2.4添加了对IBM类的Java17支持,以及对用于Oracle、Oracle和Adoptium的JMS的IBM类的支持。

如果使用maven,您可能可以通过

代码语言:javascript
运行
复制
<dependency>
    <groupId>com.ibm.mq</groupId>
    <artifactId>com.ibm.mq.allclient</artifactId>
    <version>9.2.4.0</version>
</dependency>
票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64057285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档