2017-03-18 40 views
1

我想在我的本地tomcat上运行简单的web应用程序 - 该应用程序基本上是在IntelliJ中创建“web应用程序”时获得的,因此目录结构是“vanilla”。我从字面上不接触index.jsp或web.xml。在Tomcat下的war文件中的index.jsp

我的Maven下这样做,所以这里是我的POM文件:

<?xml version="1.0" encoding="UTF-8"?> 
<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>com.testapps</groupId> 
    <artifactId>Test_App_1</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.6.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <webXml>web\WEB-INF\web.xml</webXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

因此,这里是我在做什么:

  1. 下的Maven构建这个 “项目”:mvn compile install
  2. 我正在将app_name.war文件从本地存储库复制到tomcat webapps目录中
  3. 正在运行tomcat:catalina start
  4. 我可以看到我的应用程序在管理器中,但是当我尝试输入它时(或者当我输入http://localhost:8080/app_name时)会发生404错误。

我在做什么错了?我不理解一些基本概念或缺少一些基本的东西吗?我是否应该明确地将这个index.jsp包含到我的.war文件中?如果是这样,我该如何在IntelliJ下做到这一点?我真的只是试图运行这个“香草”应用程序,我的印象是,index.jsp应该是这个.war文件的一部分,它应该“自动”显示。当我手动完成时,所以我将在webapps文件夹中创建一些TestDirectory,复制相同的index.jsp文件并将其放在该目录中,然后访问它http://localhost:8080/TestDirectory - 它会自动显示该index.jsp文件。

对不起,可能是愚蠢的问题,我真的是新来的,我找不到解决方案。

+1

*我的印象中,index.jsp的应该是这个.war文件*的一部分:你为什么不检查? –

+0

那么.war文件是否包含index.jsp?战争文件只是一个zip文件,你至少可以看到它是否从战争中失踪(尽管可能不是)。 – Kayaman

回答

0

删除Maven的战争插件,该生成后在服务器重新部署和测试

+2

谢谢你的回答 - 这部分是有用的。正如你所看到的,我已经包含war插件conf来提供web.xml的路径,因为maven找不到它自己。事实证明,IntelliJ在项目的根目录中创建了web目录(其中包含WEB-INF/web.xml和index.jsp),而它应该放置在... \ src \ main中,并且目录应该是'webapp'。因此,在改变项目结构(并删除战争插件,因为这是无关紧要的),一切正常。谢谢。 – 3michalzak