Wildfly不提供JSF实现?
我刚开始使用 JSF 和 Wildfly,但遇到了一个奇怪的错误。遵循 BalusC ( https://balusc.omnifaces.org/2020/04/jsf-23-tutorial-with-eclipse-maven.html )的优秀教程,我到达了我必须第一次运行 JSF 的部分Wildfly 上的项目,但它失败了,并出现一个错误,表明 Wildfly 根本没有提供 JSF 实现。接下来是堆栈跟踪。任何帮助将不胜感激。
21:45:48,684 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit."project-jsf-ejb-0.0.1-SNAPSHOT.war".undertow-deployment.UndertowDeploymentInfoService: org.jboss.msc.service.StartException in service jboss.deployment.unit."project-jsf-ejb-0.0.1-SNAPSHOT.war".undertow-deployment.UndertowDeploymentInfoService: java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet from [Module "deployment.project-jsf-ejb-0.0.1-SNAPSHOT.war" from Service Module Loader]
at org.wildfly.extension.undertow@23.0.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.createServletConfig(UndertowDeploymentInfoService.java:1075)
at org.wildfly.extension.undertow@23.0.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService.start(UndertowDeploymentInfoService.java:276)
at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1363)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet from [Module "deployment.project-jsf-ejb-0.0.1-SNAPSHOT.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
回答
WildFly 目前可下载为“ Jakarta EE Full & Web Distribution ”和“ WildFly Preview EE 9 Distribution ”。本教程仅适用于“ Jakarta EE Full & Web Distribution ”。“ WildFly Preview EE 9 Distribution ”使用jakarta.*包名而不是javax.*包。
“安装 WildFly ”部分已更新。之前说的
WildFly 是 Red Hat 的开源 Jakarta EE 应用服务器。您可以从 wildfly.org 下载它。确保您选择“Java EE Full & Web Distribution”下载,而不是例如“Servlet-Only Distribution”。
现在已经更新为
WildFly 是 Red Hat 的开源 Jakarta EE 应用服务器。您可以从 wildfly.org 下载它。确保您选择“Jakarta EE Full & Web Distribution”下载,而不是例如“WildFly Preview EE 9 Distribution”或“Servlet-Only Distribution”。
指出应该是“ WildFly预览EE 9分配,你记住手动换出”可以安全使用,只要javax.*为jakarta.*在本教程中的所有地方。