使用 Java8 的 ClosableHttpClient 导致处理异常:javax.net.ssl.SSLException:不支持的记录版本未知 [重复]

2024-02-13

我跟着this https://stackoverflow.com/questions/23324807/randomly-sslexception-unsupported-record-version-unknown-0-0?answertab=votes#tab-top线程试图解决我的问题,但我不能。

我向提供商请求 API。该提供商向所有客户发出了我们必须更新 SSL 协议的通知。最低限度应为 TLSv1.2。此请求是使用 WebLogic 12.1.3 和调用 ClosableHttpClient 的 EJB 发出的。

幸运的是,最近我们从 Java 7 迁移到 8,这使得 SSL 协议 TLSv1.2 成为默认协议,这可以通过提供商的要求来完成。

但是,我看到类似间歇性失败的行为,可能每 5 次尝试(请求)就有 1 次失败。

我启用了 SSL 调试,试图找到更多信息来研究,这是:

]
  Algorithm: [SHA1withRSA]
  Signature:
0000: CB 9C 37 AA 48 13 12 0A   FA DD 44 9C 4F 52 B0 F4  ..7.H.....D.OR..
0010: DF AE 04 F5 79 79 08 A3   24 18 FC 4B 2B 84 C0 2D  ....yy..$..K+..-
0020: B9 D5 C7 FE F4 C1 1F 58   CB B8 6D 9C 7A 74 E7 98  .......X..m.zt..
0030: 29 AB 11 B5 E3 70 A0 A1   CD 4C 88 99 93 8C 91 70  )....p...L.....p
0040: E2 AB 0F 1C BE 93 A9 FF   63 D5 E4 07 60 D3 A3 BF  ........c...`...
0050: 9D 5B 09 F1 D5 8E E3 53   F4 8E 63 FA 3F A7 DB B4  .[.....S..c.?...
0060: 66 DF 62 66 D6 D1 6E 41   8D F2 2D B5 EA 77 4A 9F  f.bf..nA..-..wJ.
0070: 9D 58 E2 2B 59 C0 40 23   ED 2D 28 82 45 3E 79 54  .X.+Y.@#.-(.E>yT
0080: 92 26 98 E0 80 48 A8 37   EF F0 D6 79 60 16 DE AC  .&...H.7...y`...
0090: E8 0E CD 6E AC 44 17 38   2F 49 DA E1 45 3E 2A B9  ...n.D.8/I..E>*.
00A0: 36 53 CF 3A 50 06 F7 2E   E8 C4 57 49 6C 61 21 18  6S.:P.....WIla!.
00B0: D5 04 AD 78 3C 2C 3A 80   6B A7 EB AF 15 14 E9 D8  ...x<,:.k.......
00C0: 89 C1 B9 38 6C E2 91 6C   8A FF 64 B9 77 25 57 30  ...8l..l..d.w%W0
00D0: C0 1B 24 A3 E1 DC E9 DF   47 7C B5 B4 24 08 05 30  ..$.....G...$..0
00E0: EC 2D BD 0B BF 45 BF 50   B9 A9 F3 EB 98 01 12 AD  .-...E.P........
00F0: C8 88 C6 98 34 5F 8D 0A   3C C6 E9 D5 95 95 6D DE  ....4_..<.....m.

]
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', READ: TLSv1.2 contentType = 0, length = 41
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', Received record type: 0
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', handling exception: javax.net.ssl.SSLException: Unsupported record version Unknown-178.235
%% Invalidated:  [Session-79, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', SEND TLSv1.2 ALERT:  fatal, description = unexpected_message
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', WRITE: TLSv1.2 Alert, length = 2
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', called closeSocket()
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', called close()
[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)', called closeInternal(true)
gt.com.lyric.excepciones.FailedCommunicationHandler: Failed request test [Unsupported record version Unknown-178.235]
    at gt.com.lyric.provider.ProviderSmsApiBean.sendRequestClient(ProviderSmsApiBean.java:302) ~[ClienteWebServiceProvider-ejb-2.1.0.jar:?]
    at gt.com.lyric.provider.ProviderSmsApiBean.obtenerPrecioSms(ProviderSmsApiBean.java:174) [ClienteWebServiceProvider-ejb-2.1.0.jar:?]
    at gt.com.lyric.provider.ProviderSmsApiBean_a3jmv4_ProviderSmsApiBeanRemotoImpl.__WL_invoke(Unknown Source) [ProviderSmsApiBean_a3jmv4_ProviderSmsApiBeanRemotoImpl.class:?]
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:34) [weblogic.server.merged.jar:12.1.3.0.0]
    at gt.com.lyric.provider.ProviderSmsApiBean_a3jmv4_ProviderSmsApiBeanRemotoImpl.obtenerPrecioSms(Unknown Source) [ProviderSmsApiBean_a3jmv4_ProviderSmsApiBeanRemotoImpl.class:?]
    at gt.com.lyric.provider.ProviderSmsApiBean_a3jmv4_ProviderSmsApiBeanRemotoImpl_WLSkel.invoke(Unknown Source) [weblogic.server.merged.jar:?]
    at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:226) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:474) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:285) [weblogic.server.merged.jar:12.1.3.0.0]
    at gt.com.lyric.provider.ProviderSmsApiBean_a3jmv4_ProviderSmsApiBeanRemotoImpl_12130_WLStub.obtenerPrecioSms(Unknown Source) [weblogic.server.merged.jar:?]
    at sun.reflect.GeneratedMethodAccessor500.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_144]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_144]
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:84) [weblogic.server.merged.jar:12.1.3.0.0]
    at com.sun.proxy.$Proxy171.getPriceSms(Unknown Source) [?:?]
    at gt.com.mgdbean.PromotionsSMS.init(PromotionsSMS.java:111) [_wl_cls_gen.jar:?]
    at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_144]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_144]
    at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethod(Jsr250Metadata.java:377) [weblogic.server.merged.jar:12.1.3.0.0]
    at com.oracle.pitchfork.inject.Jsr250Metadata.invokeLifecycleMethods(Jsr250Metadata.java:352) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebComponentContributor.invokeLifecycleMethods(WebComponentContributor.java:328) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebComponentContributor.notifyPostConstruct(WebComponentContributor.java:311) [weblogic.server.merged.jar:12.1.3.0.0]
    at com.bea.faces.WeblogicInjectionProvider.invokePostConstruct(WeblogicInjectionProvider.java:38) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:223) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:408) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:268) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:103) [weblogic.server.merged.jar:12.1.3.0.0]
    at com.sun.el.parser.AstValue.getValue(AstValue.java:179) [weblogic.server.merged.jar:12.1.3.0.0]
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224) [weblogic.server.merged.jar:12.1.3.0.0]
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIOutput.getValue(UIOutput.java:170) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:881) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:851) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:448) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [glassfish.jsf_2.0.0.0_2-1-20.jar:2.0.0.0_2-1-20]
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100) [primefaces-6.0.jar:6.0]
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
    at gt.com.lyric.segcurity.util.FiltreApp.doFilter(FiltroAplicaciones.java:53) [Seguridad-1.5.0.jar:?]
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.oracle.css.weblogic.security.wls_7.1.0.0.jar:CSS 7.1 0.0]
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) [weblogic.server.merged.jar:12.1.3.0.0]
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) [weblogic.server.merged.jar:12.1.3.0.0]

任何帮助都会很好。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java8 的 ClosableHttpClient 导致处理异常:javax.net.ssl.SSLException:不支持的记录版本未知 [重复] 的相关文章

  • 使用 java 删除 XML 根的子级

    这是我的 xml 文件
  • 简单 XML 框架:ElementMap 中的对象具有“类似内联”的行为

    我正在尝试在 Android 上序列化自定义对象的 Hashmap 以获得如下 xml
  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • Spring HATEOAS 和 HAL:更改 _embedded 中的数组名称

    我正在尝试使用 Spring HATEOAS 构建符合 HAL 的 REST API 经过一番摆弄后我终于开始工作了mostly正如预期的那样 示例 输出现在看起来像这样 links self href http localhost 808
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 但是创建静态实用方法不应该被过度使用吗?如何避免呢? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 随着时间的推移 java项目中引入了许多实用方法来完成更复杂和简单的任务 当使用静态方法时 我们在代码中引入了紧密耦合 这使得我们的代
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • 从 CLI 部署 Maven 项目?

    在 IDE 中构建并运行良好 cd home thufir NetBeansProjects HelloMaven JAVA HOME usr lib jvm java 8 openjdk amd64 home thufir local s
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma

随机推荐