You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ IDEA启动GlassFish 5.0.1报错java.lang.NoClassDefFoundError: sun/security/util/CurveDB

IntelliJ IDEA启动GlassFish 5.0.1管理后台空白问题解决

问题现象

使用IntelliJ IDEA搭建GlassFish 5.0.1运行环境,出现如下异常表现:

  • 通过IDEA启动服务后,8080端口默认页面访问正常,4848端口的管理后台显示空白页
  • 直接从GlassFish的bin目录手动启动服务,所有功能均正常
  • 运行环境为JDK 1.8

异常栈信息

控制台抛出的错误栈如下:

java.lang.NoClassDefFoundError: sun/security/util/CurveDB
at sun.security.ec.SunEC.putEntries(SunEC.java:118)
at sun.security.ec.SunEC.<init>(SunEC.java:82)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
at sun.security.jca.ProviderList.getProvider(ProviderList.java:233)
at sun.security.jca.ProviderList.getService(ProviderList.java:331)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)
at com.sun.enterprise.security.ssl.SSLUtils.getSSLContext(SSLUtils.java:146)
at com.sun.enterprise.security.ssl.SSLUtils.postConstruct(SSLUtils.java:126)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:327)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:375)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:71)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2126)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:116)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698)
at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78)
at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:212)
at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:235)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:358)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:71)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2126)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:116)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:90)
at com.sun.enterprise.security.ee.SecuritySniffer.setup(SecuritySniffer.java:134)
at com.sun.enterprise.v3.server.ContainerStarter.startContainer(ContainerStarter.java:97)
at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainer(ApplicationLifecycle.java:997)

解决方案

按以下步骤操作即可修复问题:

  1. 确认IDEA中GlassFish运行配置使用的JDK版本,和本地手动启动GlassFish时的JDK 1.8版本完全一致,避免版本差异导致的类加载失败
  2. 打开IDEA的GlassFish运行配置界面,在「VM选项」输入框中添加如下参数:
    -Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves
  3. 若添加上述参数后仍无法正常访问,可额外添加禁用SunEC安全提供程序的参数:
    -Dsecurity.provider.1=sun.security.provider.Sun -Dsecurity.provider.2=com.sun.net.ssl.internal.ssl.Provider -Dsecurity.provider.3=com.sun.crypto.provider.SunJCE -Dsecurity.provider.4=sun.security.rsa.SunRsaSign
  4. 保存配置后重启GlassFish服务,4848管理后台即可正常加载

内容的提问来源于stack exchange,提问作者Alder Isaac Solis de Leon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:54:00