【问题标题】:Unable to run web project after maven buildMaven构建后无法运行Web项目
【发布时间】:2015-11-13 10:59:51
【问题描述】:

我是 Maven 新手。我正在尝试使用 maven 和 eclipse kepler 构建一个 Web 项目。但是在我使用全新安装运行 maven build 后,.xhtml 文件不在 web-inf 文件夹中,这最终导致资源未找到错误

My folder structure

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>CassandraPrimefacesKunderaIntegration</display-name>
  <welcome-file-list>
    <welcome-file>home.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>*.xhtml</url-pattern>
  </servlet-mapping>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
</web-app>

没有依赖的 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>CassandraPrimefacesKunderaIntegration</groupId>
  <artifactId>CassandraPrimefacesKunderaIntegration</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>CassandraPrimefacesKunderaIntegration</name>

  <url>http://maven.apache.org</url>

<build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>        
      </plugin>
    </plugins>
  </build>

当我使用全新安装调用 maven 构建时,目标文件夹如下所示

target folder structure

部署组装 -->

src/main/java -->WEB-INF/classes
src/main/resources -->WEB-INF/classes
src/main/webapp -->WEB-INF/classes

现在,当我从 Tomcat 运行项目时(右键单击 --> 运行方式 --> 在服务器上运行),它显示“资源不可用”错误

【问题讨论】:

  • 您查看过“pages”文件夹吗?
  • 是的,网页在 pages 文件夹内当我尝试直接运行 home.xhtml 时,url 是 localhost:9091/CassandraPrimefacesKunderaIntegration/faces/… 并且它给出了资源未找到错误我已经检查了目标文件夹的页面文件夹位于 WEB-INF 之外。我错过了什么,如果是,请指导。谢谢

标签: java eclipse maven tomcat


【解决方案1】:

首先尝试一个 maven - 更新项目,然后再次清理并构建您的应用程序。

【讨论】:

  • 嗨莱昂纳多我已经尝试过了,构建成功并且正在创建战争,但是当尝试运行时,它给出了资源未找到错误。用于调用的 url 是 localhost:9091/CassandraPrimefacesKunderaIntegration 和 web.xml 它就像下面的 pages/home.xhtml跨度>
【解决方案2】:

我在您的项目结构中没有看到部署描述符。如果您已标记 Dynamic Web 模块,请检查 Project Facets。

【讨论】:

  • 您好,如果您会看到部署描述符位于项目结构的顶部,则说明 Dynamic Web 模块 3.0 已在项目方面标记
  • Supriti,文件夹结构没有为我打开。我不确定你是否已经解决了。你能再试试粘贴你的项目结构吗?
  • 感谢您的回复。我又上传了文件夹结构
猜你喜欢
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2016-03-02
  • 1970-01-01
  • 2018-11-24
相关资源
最近更新 更多