【问题标题】:How to fix java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl如何修复 java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl
【发布时间】:2019-08-09 15:56:17
【问题描述】:

应用程序通过读取jsf形式的参数发送信件。我不明白为什么以及如何修复它,因为当您从开发环境运行时,一切正常。 当我将我的应用程序放在 VPS 服务器上时,我得到了下一个错误堆栈(尽管应用程序在本地主机上运行,​​根据需要):

StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl.<init>(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite;Ljava/util/Collection;Lsun/security/ssl/SessionId;Ljava/lang/String;I)V
	at sun.security.ssl.ClientHandshaker.serverHello(ClientHandshaker.java:709)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:984)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:919)
	at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:619)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:393)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:726)
	at javax.mail.Service.connect(Service.java:366)
	at org.spirtus.controllers.CustomMailSenderController.sendfromFixedMail(CustomMailSenderController.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at javax.el.ELUtil.invokeMethod(ELUtil.java:304)
	at javax.el.BeanELResolver.invoke(BeanELResolver.java:535)
	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
	at com.sun.el.parser.AstValue.invoke(AstValue.java:285)
	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
	at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
	at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:330)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:870)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1418)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:201)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:670)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1580)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:338)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:250)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:652)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:591)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:371)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:238)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:463)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:168)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:242)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573)
	at java.lang.Thread.run(Unknown Source)

【问题讨论】:

  • 运行时包含在类路径中的依赖项很可能存在差异。您是否在这方面比较了这两种环境?
  • 这个问题解决了吗?

标签: java jakarta-ee java-8


【解决方案1】:

我认为这是由于您的 JRE 中没有安装 Unlimited Strength Java Cryptography Extension 造成的。

尝试在您的 JRE lib/security 文件夹中安装(复制 JAR)。从here 获取。

只需下载并提取内容。您应该得到两个文件 local_policy.jarUS_export_policy.jar。将此复制到$JAVA_HOME/jre/lib/security 文件夹。

如果这样可以解决问题,您应该考虑升级您的 Java 8 版本。此问题已在 Java 8u161 或更高版本中得到解决。

【讨论】:

  • 不幸的是,这些步骤并不能解决我的问题。安装 Java 的更新版本没有帮助。我使用 java 8u161、u162、9。
  • 这里一样,我已将安全策略更新为无限制,但仍然出现相同的错误。
【解决方案2】:

我创建和编译项目使用版本 jdk_8u151 和 JRE。当时和服务器一样,项目是在后来的jre下启动的。使用相同版本的 jre 解决了这个问题。泰。

【讨论】:

    【解决方案3】:

    据我了解,缓存库和添加的库之间存在冲突。所以我尝试清理缓存,结果非常好。在 Android Studio 中,您应该尝试 File -> Invalidate caches / Restart。

    【讨论】:

    • 您应该提供详细的答案,包括最初导致错误的原因和解决方案。
    • 此答案适用于 Android 开发。感谢您的回答。为我节省大量调试时间。
    【解决方案4】:

    在我身边,我卸载了我安装的最新版本的 jdk 版本,它就像一个魅力。所以请将您的 jre 或 jdk 更新到最新版本,问题将得到解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-20
      • 2019-12-03
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2020-02-15
      相关资源
      最近更新 更多