java.lang.NoClassDefFoundError: sun/security/ssl/SupportedEllipticCurvesExtension

蹲街弑〆低调 提交于 2019-12-22 05:25:20

问题


I am trying to secure a web application so that I can use a secure data transport layer TLS/SSL with HTTPS. I am using glassfish server 5. After starting the server I did a https://localhost:8181 and it gave me this exception:

    Warning:   GRIZZLY0013: Exception during FilterChain execution
java.lang.NoClassDefFoundError: sun/security/ssl/SupportedEllipticCurvesExtension
    at sun.security.ssl.HelloExtensions.<init>(HelloExtensions.java:82)
    at sun.security.ssl.HandshakeMessage$ClientHello.<init>(HandshakeMessage.java:362)
    at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:223)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:984)
    at sun.security.ssl.Handshaker$1.run(Handshaker.java:924)
    at sun.security.ssl.Handshaker$1.run(Handshaker.java:921)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1379)
    at org.glassfish.grizzly.ssl.SSLUtils.executeDelegatedTask(SSLUtils.java:274)
    at org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeStep(SSLBaseFilter.java:708)
    at org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeStep(SSLBaseFilter.java:622)
    at org.glassfish.grizzly.ssl.SSLBaseFilter.handleRead(SSLBaseFilter.java:334)
    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(Thread.java:748)

The browser(firefox) shows this: error

What could be the problem?


回答1:


This is looks to be the same issue as this bug, which is caused by a change in Java 8 162, where that class was renamed. Which was a fix for this bug in OpenJDK which was changed here, but unfortunately that was a breaking change that introduced this issue as they renaming the class.

An alternative is to use Payara 5.182, a fork of glassfish which includes a fix for it.




回答2:


I looked into the bug mentioned by @Jonathan Coustick in his answer. The root of the problem is that Glassfish (or Payara) uses an old version of grizzly. So, I thought maybe replacing grizzly-npn-bootstrap.jar with a newer version would solve the problem.

This JAR file is located in <glassfish-root>/glassfish/modules/endorsed directory (for GlassFish server) <payara-root>/glassfish/lib directory (for Payara server). Versions prior to 1.7 are subject to this error . So, I got the latest version (currently, 1.9) from maven.org, and it worked like a charm.

Here's the download link.




回答3:


NoClassDefFoundError An error is typically generated when class information is not loaded into memory. It is necessary to check whether the location reference of the actual class file is invalid or whether the class file exists.



来源:https://stackoverflow.com/questions/49112316/java-lang-noclassdeffounderror-sun-security-ssl-supportedellipticcurvesextensio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!