我在本地計算機上使用 glassfish6.2.3。如果我將這些行添加到 web.xml
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
然后出現以下錯誤:
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1577) at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1427) ) 在 org.apache.catalina.core.StandardWrapper.loadServletClass(StandardWrapper.java:1391) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1257) 在 org.apache.catalina.core.StandardWrapper。 load(StandardWrapper.java:1239) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5343) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5588) at com.sun .enterprise.web.WebModule.start(WebModule.java:510) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:877) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java :860) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:644) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2020) 在 com.sun.enterprise.web.WebContainer .loadWebModule(WebContainer.java:1666) at com.sun.enterprise.web.WebApplication.start(WebApplication.java:82) at org.glassfish.internal.data.EngineRef.start(EngineRef.java:98) at org. glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:267) at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:328) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy( ApplicationLifecycle.java:480) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:199) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:467) at com.sun .enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:516) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:512) 在 java.base/java.security.AccessController.doPrivileged(Native Method) 在 java.base/javax.security。 auth.Subject.doAs(Subject.java:361) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:511) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run( CommandRunnerImpl.java:542) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:534) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/javax .security.auth.Subject.doAs(Subject.java:361) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:533) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand (CommandRunnerImpl.java:1441) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext。在 org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:140) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:573) 在 org.glassfish 執行(CommandRunnerImpl.java:1823) .deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:460) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:388) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java) :379) 在 org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:209) 在 java.base/java.util.TimerThread.mainLoop(Timer.java:556) 在 java.base/java.util .TimerThread.run(Timer.java:506)glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:460) at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:388) at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer. java:379) 在 org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:209) 在 java.base/java.util.TimerThread.mainLoop(Timer.java:556) 在 java.base/java。 util.TimerThread.run(Timer.java:506)glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:460) at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:388) at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer. java:379) 在 org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:209) 在 java.base/java.util.TimerThread.mainLoop(Timer.java:556) 在 java.base/java。 util.TimerThread.run(Timer.java:506)運行(定時器.java:506)運行(定時器.java:506)
否則,一切正常,但不顯示 jsf 元素
uj5u.com熱心網友回復:
GlassFish 6.2.3 實作了 Jakarta EE 9.1 和 Faces 3.0。這些使用Jakarta命名空間。因此,您的 servlet 宣告應該是:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
</servlet>
請注意,您還可以@FacesConfig在應用程式中使用注釋,而不是在 web.xml 中定義 servlet 。這將默認將您的所有視圖映射到.xhtml.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/389962.html
上一篇:安裝后找不到可執行檔案
