【问题标题】:index.xhtml 404 error with Primefaces and JbossPrimefaces 和 Jboss 的 index.xhtml 404 错误
【发布时间】:2021-03-03 03:07:18
【问题描述】:

我正在使用 JBoss AS 7.1jsf 2.2Java7 构建一个新的 Maven 应用程序。无论如何,我无法让它发挥作用。 Jboss 运行良好,我可以看到欢迎页面,但没有办法(我尝试了很多)看到我的index.xhtml 页面。它一直给我一个 404 错误。

这是我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.metalacademy</groupId>
  <artifactId>MetalAcademy</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>MetalAcademy</name>
  
  <dependencies>
    <!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-api -->
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.2</version>
        <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-impl -->
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.2</version>
        <scope>provided</scope>
    </dependency>           
  </dependencies>
  
  <build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>   
    </plugins>
  </build>
</project>

这是我在 WEB-INF 文件夹中的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0">  
    <display-name>MetalAcademy</display-name>
    <!--
    <welcome-file-list>     
        <welcome-file>index.html</welcome-file> 
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>    
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file> 
        <welcome-file>index.jsf</welcome-file>
        <welcome-file>index.xhtml</welcome-file>    
    </welcome-file-list>
    -->
    <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>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
</web-app>

这是我的 webapp 文件夹中的index.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">

    <ui:composition template="">
    </ui:composition>
    <h:head>
        <title>METAL ACADEMY</title>
    </h:head>
    <body>
        <h1>Test Page</h1>
        <h:commandButton value="Search" />
    </body>
</html>

我做错了吗?我想我什么都试过了……现在我卡住了。

提前谢谢你!

【问题讨论】:

  • 如果这是一个新项目,我绝对建议至少使用 Java 8、11 和 WildFly 21.0.1.Final。也就是说,您尝试导航到的 URL 是什么?
  • 您好@JamesR.Perkins,感谢您的建议。我会尽快这样做。很抱歉我的答案延迟了,但我的工作很忙,并且只要有可能就在这个个人项目上工作。这个假期会试着去做,看看会发生什么。会让你知道。再次感谢

标签: jsf primefaces jboss jsf-2.2


【解决方案1】:

404 通常表示找不到页面。这表明应用程序没有被部署,或者您引用了错误的名称。您能否使用 JBoss 管理控制台检查应用程序是否正确部署?

我在 POM 中缺少的是 maven-war-plugin,否则您如何创建需要部署的 .war?

在 web.xml 文件中,您需要&lt;welcome-file-list&gt; 用于 index.xhtml(但不需要其他)。没有它,默认的初始页面是 index.html,但在 Wildfly 中,如果 index.html 不存在,这会给我一个“禁止”错误而不是 404。

在 index.xhtml 中,带有空白模板的 ui:composition 给了我一个页面错误。只需删除整个标签 &lt;ui:composition&gt;&lt;/ui.composition&gt; 即可开始使用。

进一步评论:JBoss 提供了一些快速入门示例,例如 https://github.com/jboss-developer/jboss-eap-quickstarts/blob/7.1/numberguess 可以作为参考。

【讨论】:

  • 你好@Brooksie,我不是在创建.war,只是在服务器上运行它。我尝试了 的所有选项,包括只留下“index.xhtml”。我将尝试删除 标签并尽快通知您。正如我在 James R. Perkins 的评论中对 James R. Perkins 所说的那样:“我的工作很忙,只要有可能,我就会在这个个人项目上工作。这个假期会尝试去做,看看会发生什么”。非常感谢您的回答,肯定会有用:-)
  • 最后我重新开始一个全新的项目并使用 apache tomcat 服务器......它对我有用。无法使其与 Jboss 一起使用
猜你喜欢
  • 1970-01-01
  • 2012-03-27
  • 2015-06-13
  • 2021-02-12
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 2014-03-25
  • 2015-03-09
相关资源
最近更新 更多