Linux环境下Wildfly服务启动失败问题求助
解决Wildfly启动时SHA-1 MessageDigest不可用的问题
核心错误分析
从日志来看,启动失败的根源是:
Caused by: java.security.NoSuchAlgorithmException: SHA-1 MessageDigest not available
这说明JDK无法找到SHA-1消息摘要算法的实现,通常是JDK安全组件缺失、安装损坏或配置异常导致的。
解决步骤
检查JDK完整性
重新安装当前使用的JDK版本,确保安装过程无中断。重点确认$JAVA_HOME/jre/lib/security目录下存在sunjce_provider.jar、sunec.jar等核心安全提供者文件,这些文件包含SHA-1算法的实现。验证安全配置文件
打开$JAVA_HOME/jre/lib/security/java.security文件,检查是否包含Sun安全提供者的配置项,例如:security.provider.2=sun.security.provider.Sun不同JDK版本的提供者序号可能不同,确保该配置存在,若缺失则手动添加。
确认Wildfly的JDK指向
检查Wildfly启动脚本(standalone.conf或domain.conf)中的JAVA_HOME配置,确保指向的是完整、可用的JDK,而非损坏或不兼容的版本。可以通过执行$JAVA_HOME/bin/java -version验证JDK是否正常运行。临时应急方案
若需快速恢复服务,可在Wildfly启动参数中强制指定安全提供者:-Djava.security.provider=sun.security.provider.Sun将该参数添加到启动脚本的
JAVA_OPTS配置中,再尝试启动服务。
原始错误日志
2023-06-14 16:15:41,117 DEBUG [org.jboss.as.config] (MSC service thread 1-2) VM Arguments: -D[Standalone] -Xms8192m -Xmx24576m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/opt/wildfly/standalone/log/server.log -Dlogging.configuration=file:/opt/wildfly/standalone/configuration/logging.properties 2023-06-14 16:15:41,125 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.as: org.jboss.msc.service.StartException in service jboss.as: Failed to start service at rg.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1731) at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.IllegalStateException: WFLYDR0005: Cannot obtain SHA-1 MessageDigest at org.jboss.as.repository.ContentRepositoryImpl.<init>(ContentRepositoryImpl.java:92) at org.jboss.as.repository.ContentRepository$Factory.addService(ContentRepository.java:188) at org.jboss.as.server.ApplicationServerService.start(ApplicationServerService.java:168) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739) at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701) ... 6 more Caused by: java.security.NoSuchAlgorithmException: SHA-1 MessageDigest not available
内容的提问来源于stack exchange,提问作者Network
相关产品推荐
相关产品推荐

