Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur 404 avec Maven et Tomcat

    17 septembre 2020 à 0:45:01

    Je modifie le sujet car je me rends compte que j'étais auparavant complètement à côté de la plaque, j'ai essayé de faire un truc un peu trop compliqué juste pour afficher une page jsp sur mon navigateur. J'ai eu l'occasion aujourd'hui de demander de l'aide à quelqu'un qui s'y connaît en Maven et qui a réussi à faire ce que je voulais (afficher la page jsp en question) mais je n'arrive pas à reproduire l'affichage de cette page chez moi sur mon poste.

    Bref, je suis en train de suivre le cours Maven et j'en suis à la leçon Packagez vos livrables (https://openclassrooms.com/fr/courses/4503526-organisez-et-packagez-une-application-java-avec-apache-maven/4609764-packagez-vos-livrables) et tout ce que je veux faire c'est afficher la page about.jsp sur mon navigateur. Après avoir lancé mon serveur Tomcat, je tape dans la bare d'adresse le localhost:8080 suivi du nom du module (/ticket) et de l'arborescence du fichier à afficher (/jsp/index.jsp) ce qui donne l'adresse finale : localhost:8080/ticket/jsp/index.jsp

    Capture d'écran du module :

    Tableau des web modules sur Java EE avec les colonnes Path, Document Base, Module et Auto Reload. La première ligne contient les informations /ticket, ticket, ticket et Enabled pour chacune de ces colonnes.

    Le fichier pom.xml du projet parent contient le code Effective POM suivant :

    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.exemple.demo</groupId>
      <artifactId>ticket</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>pom</packaging>
      <name>ticket</name>
      <url>http://www.example.com</url>
      <modules>
        <module>ticket-batch</module>
        <module>ticket-webapp</module>
        <module>ticket-business</module>
        <module>ticket-consumer</module>
        <module>ticket-model</module>
      </modules>
      <properties>
        <maven.compiler.target>1.7</maven.compiler.target>
        <maven.compiler.source>1.7</maven.compiler.source>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
          </dependency>
          <dependency>
            <groupId>org.apache.bval</groupId>
            <artifactId>bval-jsr</artifactId>
            <version>1.1.2</version>
            <scope>runtime</scope>
          </dependency>
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>Central Repository</name>
          <url>https://repo.maven.apache.org/maven2</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <releases>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>Central Repository</name>
          <url>https://repo.maven.apache.org/maven2</url>
        </pluginRepository>
      </pluginRepositories>
      <build>
        <sourceDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\src\main\java</sourceDirectory>
        <scriptSourceDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\src\main\scripts</scriptSourceDirectory>
        <testSourceDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\src\test\java</testSourceDirectory>
        <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target\classes</outputDirectory>
        <testOutputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target\test-classes</testOutputDirectory>
        <resources>
          <resource>
            <directory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\src\main\resources</directory>
          </resource>
        </resources>
        <testResources>
          <testResource>
            <directory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\src\test\resources</directory>
          </testResource>
        </testResources>
        <directory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target</directory>
        <finalName>ticket-1.0-SNAPSHOT</finalName>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-antrun-plugin</artifactId>
              <version>1.3</version>
            </plugin>
            <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <version>2.2-beta-5</version>
            </plugin>
            <plugin>
              <artifactId>maven-dependency-plugin</artifactId>
              <version>2.8</version>
            </plugin>
            <plugin>
              <artifactId>maven-release-plugin</artifactId>
              <version>2.5.3</version>
            </plugin>
            <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <version>3.1.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.0</version>
              <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <showDeprecation>true</showDeprecation>
                <showWarnings>true</showWarnings>
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.22.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-jar-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-site-plugin</artifactId>
              <version>3.7.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <version>3.0.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.1.0</version>
              <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <webResources>
                  <resource>
                    <filtering>true</filtering>
                    <directory>src/main/webapp</directory>
                    <includes>
                      <include>jsp/_include/header.jsp</include>
                      <include>jsp/_include/footer.jsp</include>
                      <include>jsp/about.jsp</include>
                    </includes>
                  </resource>
                </webResources>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
              <execution>
                <id>default-clean</id>
                <phase>clean</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
              <execution>
                <id>default-install</id>
                <phase>install</phase>
                <goals>
                  <goal>install</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
            <executions>
              <execution>
                <id>default-deploy</id>
                <phase>deploy</phase>
                <goals>
                  <goal>deploy</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.7.1</version>
            <executions>
              <execution>
                <id>default-site</id>
                <phase>site</phase>
                <goals>
                  <goal>site</goal>
                </goals>
                <configuration>
                  <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target\site</outputDirectory>
                  <reportPlugins>
                    <reportPlugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-project-info-reports-plugin</artifactId>
                    </reportPlugin>
                  </reportPlugins>
                </configuration>
              </execution>
              <execution>
                <id>default-deploy</id>
                <phase>site-deploy</phase>
                <goals>
                  <goal>deploy</goal>
                </goals>
                <configuration>
                  <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target\site</outputDirectory>
                  <reportPlugins>
                    <reportPlugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-project-info-reports-plugin</artifactId>
                    </reportPlugin>
                  </reportPlugins>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target\site</outputDirectory>
              <reportPlugins>
                <reportPlugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-project-info-reports-plugin</artifactId>
                </reportPlugin>
              </reportPlugins>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\target\site</outputDirectory>
      </reporting>
      <profiles>
        <profile>
          <id>target-dev</id>
          <build>
            <resources>
              <resource>
                <directory>src/main/resources/conf-dev</directory>
              </resource>
            </resources>
          </build>
        </profile>
        <profile>
          <id>target-test</id>
          <build>
            <resources>
              <resource>
                <directory>src/main/resources/conf-test</directory>
              </resource>
            </resources>
          </build>
        </profile>
        <profile>
          <id>target-prod</id>
          <build>
            <resources>
              <resource>
                <directory>src/main/resources/conf-prod</directory>
              </resource>
            </resources>
          </build>
        </profile>
      </profiles>
    </project>
    

    Et fichier pom.xml et webapp-ticket :

    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>org.exemple.demo</groupId>
        <artifactId>ticket</artifactId>
        <version>1.0-SNAPSHOT</version>
      </parent>
      <groupId>org.exemple.demo</groupId>
      <artifactId>ticket-webapp</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>war</packaging>
      <name>ticket-webapp Maven Webapp</name>
      <url>http://www.example.com</url>
      <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <maven.build.timestamp.format>dd/MM/yyyy</maven.build.timestamp.format>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <build.Timestamp>17/09/2020</build.Timestamp>
        <application.name>TicketTac</application.name>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
          </dependency>
          <dependency>
            <groupId>org.apache.bval</groupId>
            <artifactId>bval-jsr</artifactId>
            <version>1.1.2</version>
            <scope>runtime</scope>
          </dependency>
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-collections4</artifactId>
          <version>4.1</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-text</artifactId>
          <version>1.1</version>
          <scope>compile</scope>
          <exclusions>
            <exclusion>
              <artifactId>commons-lang3</artifactId>
              <groupId>org.apache.commons</groupId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>javax.validation</groupId>
          <artifactId>validation-api</artifactId>
          <version>1.1.0.Final</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.bval</groupId>
          <artifactId>bval-jsr</artifactId>
          <version>1.1.2</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>Central Repository</name>
          <url>https://repo.maven.apache.org/maven2</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <releases>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>Central Repository</name>
          <url>https://repo.maven.apache.org/maven2</url>
        </pluginRepository>
      </pluginRepositories>
      <build>
        <sourceDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\src\main\java</sourceDirectory>
        <scriptSourceDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\src\main\scripts</scriptSourceDirectory>
        <testSourceDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\src\test\java</testSourceDirectory>
        <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target\classes</outputDirectory>
        <testOutputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target\test-classes</testOutputDirectory>
        <resources>
          <resource>
            <directory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\src\main\resources</directory>
          </resource>
        </resources>
        <testResources>
          <testResource>
            <directory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\src\test\resources</directory>
          </testResource>
        </testResources>
        <directory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target</directory>
        <finalName>ticket-webapp</finalName>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-antrun-plugin</artifactId>
              <version>1.3</version>
            </plugin>
            <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <version>2.2-beta-5</version>
            </plugin>
            <plugin>
              <artifactId>maven-dependency-plugin</artifactId>
              <version>2.8</version>
            </plugin>
            <plugin>
              <artifactId>maven-release-plugin</artifactId>
              <version>2.5.3</version>
            </plugin>
            <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <version>3.1.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.0</version>
              <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <showDeprecation>true</showDeprecation>
                <showWarnings>true</showWarnings>
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.22.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-jar-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-site-plugin</artifactId>
              <version>3.7.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <version>3.0.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.2.2</version>
              <configuration>
                <webResources>
                  <resource>
                    <filtering>true</filtering>
                    <directory>src/main/webapp</directory>
                    <includes>
                      <include>jsp/_include/header.jsp</include>
                      <include>jsp/_include/footer.jsp</include>
                      <include>jsp/about.jsp</include>
                    </includes>
                  </resource>
                </webResources>
                <failOnMissingWebXml>false</failOnMissingWebXml>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
              <execution>
                <id>default-clean</id>
                <phase>clean</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.0.2</version>
            <executions>
              <execution>
                <id>default-testResources</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>testResources</goal>
                </goals>
              </execution>
              <execution>
                <id>default-resources</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>resources</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <executions>
              <execution>
                <id>default-war</id>
                <phase>package</phase>
                <goals>
                  <goal>war</goal>
                </goals>
                <configuration>
                  <webResources>
                    <resource>
                      <filtering>true</filtering>
                      <directory>src/main/webapp</directory>
                      <includes>
                        <include>jsp/_include/header.jsp</include>
                        <include>jsp/_include/footer.jsp</include>
                        <include>jsp/about.jsp</include>
                      </includes>
                    </resource>
                  </webResources>
                  <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <webResources>
                <resource>
                  <filtering>true</filtering>
                  <directory>src/main/webapp</directory>
                  <includes>
                    <include>jsp/_include/header.jsp</include>
                    <include>jsp/_include/footer.jsp</include>
                    <include>jsp/about.jsp</include>
                  </includes>
                </resource>
              </webResources>
              <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <executions>
              <execution>
                <id>default-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>compile</goal>
                </goals>
                <configuration>
                  <source>1.7</source>
                  <target>1.7</target>
                  <showDeprecation>true</showDeprecation>
                  <showWarnings>true</showWarnings>
                </configuration>
              </execution>
              <execution>
                <id>default-testCompile</id>
                <phase>test-compile</phase>
                <goals>
                  <goal>testCompile</goal>
                </goals>
                <configuration>
                  <source>1.7</source>
                  <target>1.7</target>
                  <showDeprecation>true</showDeprecation>
                  <showWarnings>true</showWarnings>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <source>1.7</source>
              <target>1.7</target>
              <showDeprecation>true</showDeprecation>
              <showWarnings>true</showWarnings>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
            <executions>
              <execution>
                <id>default-test</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
              <execution>
                <id>default-install</id>
                <phase>install</phase>
                <goals>
                  <goal>install</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
            <executions>
              <execution>
                <id>default-deploy</id>
                <phase>deploy</phase>
                <goals>
                  <goal>deploy</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.7.1</version>
            <executions>
              <execution>
                <id>default-site</id>
                <phase>site</phase>
                <goals>
                  <goal>site</goal>
                </goals>
                <configuration>
                  <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target\site</outputDirectory>
                  <reportPlugins>
                    <reportPlugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-project-info-reports-plugin</artifactId>
                    </reportPlugin>
                  </reportPlugins>
                </configuration>
              </execution>
              <execution>
                <id>default-deploy</id>
                <phase>site-deploy</phase>
                <goals>
                  <goal>deploy</goal>
                </goals>
                <configuration>
                  <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target\site</outputDirectory>
                  <reportPlugins>
                    <reportPlugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-project-info-reports-plugin</artifactId>
                    </reportPlugin>
                  </reportPlugins>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target\site</outputDirectory>
              <reportPlugins>
                <reportPlugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-project-info-reports-plugin</artifactId>
                </reportPlugin>
              </reportPlugins>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <outputDirectory>C:\Users\Alban\Documents\Apprentissage programmation\Java\ee-app\ticket\ticket-webapp\target\site</outputDirectory>
      </reporting>
    </project>
    

    Je lance donc le serveur en ayant défini mon projet comme étant lancé par mon serveur Tomcat, et j'installe l'application en faisant clic droit sur le projet > Run As > Maven Build… > et dans les goals j'indique « clean install ». Ensuite je tape mon adresse dans la barre, mais ça affiche erreur 404 - La ressource demandée n'est pas disponible.

    Ce qui m'étonne car je ne sais pas ce que j'ai mal fait, si quelqu'un pouvait me donner une piste…

    -
    Edité par AlbanPomarède 17 septembre 2020 à 23:28:04

    • Partager sur Facebook
    • Partager sur Twitter
      18 septembre 2020 à 20:05:37

      Mise à jour, je pensais avoir trouvé la solution, en effet je n'avais pas mis le plugin jsp dans mes fichier pom, et je l'ai ajouté…

      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
      </dependency>

      Sauf que ça ne marche manifestement toujours pas, écrire l'adresse dans la barre d'adresse me donne toujours la même erreur 404.

      Quelqu'un pourrait-il m'aider à trouver une piste ? Parce que je suis à court d'idées pour l'instant.

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2020 à 9:16:17

        On est tous d'accord que java est verbeux, mais un pom parent de 300 lignes, et un pom de 400 lignes juste pour afficher une JSP?

        De plus rempli de chemins hard coded, la version de java en 7?

        Efface tout et recommence de 0 et ajoute progressivement uniquement ce qui est nécessaire, ça t'aidera à comprendre ce qui se passe.

        PS: Tomcat/JSP, c'est pas ce qu'il y a de plus moderne pour faire du web en java, c'est tombé en désuétude.

        • Partager sur Facebook
        • Partager sur Twitter
          19 septembre 2020 à 14:13:30

          J'ai suivi ton conseil, j'ai repris un projet du début en suivant les consignes cours Découpez votre projet en couches applicatives (https://openclassrooms.com/fr/courses/4503526-organisez-et-packagez-une-application-java-avec-apache-maven/4609181-decoupez-votre-projet-en-couches-applicatives) puis Packagez vos livrables (https://openclassrooms.com/fr/courses/4503526-organisez-et-packagez-une-application-java-avec-apache-maven/4609764-packagez-vos-livrables), dans le but de moins m'emmêler les pinceaux.

          Les gros POM de plus de 300 lignes affichés dans le premier message sont en fait les POM effectifs. J'imaginais que ça réorganisait simplement le code pour le rendre plus lisible mais je me suis rendu compte qu'en fait ça affiche plein d'autres lignes pas présentes dans le POM de base (lignes de configuration par défaut je suppose).

          Voici donc le POM parent (pas le POM effectif) :

          <?xml version="1.0" encoding="UTF-8" standalone="no"?>
          <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>org.exemple.demo</groupId>
            <artifactId>ticket3</artifactId>
            <version>1.0-SNAPSHOT</version>
            <packaging>pom</packaging>
            <name>ticket3</name>
            <url>http://maven.apache.org</url>
                      
            <properties>
               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
               <maven.compiler.source>1.8</maven.compiler.source>
               <maven.compiler.target>1.8</maven.compiler.target>
          </properties>
                      
            <dependencyManagement>
            <dependencies>
            <dependency>
                      <groupId>javax.servlet</groupId>
                      <artifactId>jsp-api</artifactId>
                      <version>2.0</version>
                      <scope>provided</scope>
                  </dependency>
                  <dependency>
                      <groupId>javax.servlet</groupId>
                      <artifactId>servlet-api</artifactId>
                      <version>2.5</version>
                  </dependency>
            <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-batch</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
                      <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-webapp</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
                      <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-business</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
                      <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-consumer</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
                      <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-model</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
            </dependencies>
            </dependencyManagement>
            
            <modules>
              <module>ticket-batch</module>
              <module>ticket-webapp</module>
              <module>ticket-business</module>
              <module>ticket-consumer</module>
              <module>ticket-model</module>
            </modules>
                  
          	<build>
                  <pluginManagement>
                      <plugins>
                          <plugin>
                              <groupId>org.apache.maven.plugins</groupId>
                              <artifactId>maven-war-plugin</artifactId>
                              <version>3.1.0</version>
                          </plugin>
                      </plugins>
                  </pluginManagement>
              </build>
          
          </project>
          

          Et le POM du dossier webapp :

          <?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>
            <parent>
              <artifactId>ticket3</artifactId>
              <groupId>org.exemple.demo</groupId>
              <version>1.0-SNAPSHOT</version>
            </parent>
          
            <groupId>org.exemple.demo</groupId>
            <artifactId>ticket-webapp</artifactId>
            <version>1.0-SNAPSHOT</version>
            <packaging>war</packaging>
          
            <name>ticket-webapp Maven Webapp</name>
            <!-- FIXME change it to the project's website -->
            <url>http://www.example.com</url>
          
            <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <maven.compiler.source>1.7</maven.compiler.source>
              <maven.compiler.target>1.7</maven.compiler.target>
              <!-- Le nom "public" de l'application -->
                  <application.name>TicketTac</application.name>
                  <!-- Le format à utiliser pour afficher la date du build -->
                  <maven.build.timestamp.format>dd/MM/yyyy</maven.build.timestamp.format>
                  <!-- Propriété servant à contourner le bug du non remplacement
                       de la propriété maven.build.timestamp lors du filtrage des ressources -->
                  <buildTimestamp>${maven.build.timestamp}</buildTimestamp>
            </properties>
          
            <dependencies>
            <dependency>
                      <groupId>javax.servlet</groupId>
                      <artifactId>jsp-api</artifactId>
                      <version>2.0</version>
                      <scope>provided</scope>
                  </dependency>
                  <dependency>
                      <groupId>javax.servlet</groupId>
                      <artifactId>servlet-api</artifactId>
                      <version>2.5</version>
                  </dependency>
            <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-business</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
                      <dependency>
                          <groupId>org.exemple.demo</groupId>
                          <artifactId>ticket-model</artifactId>
                          <version>1.0-SNAPSHOT</version>
                      </dependency>
              <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
              </dependency>
            </dependencies>
          
            <build>
              <finalName>ticket-webapp</finalName>
              <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
                <plugins>
                  <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                  </plugin>
                  <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                  <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                  </plugin>
                  <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                  </plugin>
                  <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                  </plugin>
                  <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                  </plugin>
                  <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                  </plugin>
                  <plugin>
                          <groupId>org.apache.maven.plugins</groupId>
                          <artifactId>maven-war-plugin</artifactId>
                          <version>3.2.2</version>
                          <configuration>
                              <webResources>
                                  <resource>
                                      <filtering>true</filtering>
                                      <directory>src/main/webapp</directory>
                                      <includes>
                                          <include>jsp/_include/header.jsp</include>
                                          <include>jsp/_include/footer.jsp</include>
                                          <include>jsp/about.jsp</include>
                                      </includes>
                                  </resource>
                              </webResources>
                          </configuration>
                      </plugin>
                </plugins>
              </pluginManagement>
            </build>
          </project>
          



          Sauf que je ne suis toujours pas bien avancé le jsp ne s'affiche toujours pas sans que j'arrive à comprendre pourquoi. Aurais-je oublié d'inclure une dépendance dans un POM ?

          -
          Edité par AlbanPomarède 19 septembre 2020 à 14:14:20

          • Partager sur Facebook
          • Partager sur Twitter
            20 septembre 2020 à 9:44:35

            C'est déjà plus clair, mais pourquoi tous ces modules?

            Pourquoi Junit 4.11?

            Oublie le copier coller, prend juste ce que tu as besoin et construit un simple hello.jsp.

            • Partager sur Facebook
            • Partager sur Twitter
              20 septembre 2020 à 12:26:58

              Play50hz a écrit:

              Oublie le copier coller, prend juste ce que tu as besoin et construit un simple hello.jsp.


              Justement je veux bien afficher un simple .jsp mais je n'y arrive pas. J'avais réussi à en afficher un avec Maven mais c'était dans une application sans sous-module, ce que j'essaie de faire c'est réussir à afficher un fichier .jsp qui se situe dans un sous-module.

              Je pourrais certainement alléger l'application en retirant les sous-modules qui ne me servent pas pour l'instant (donc tous sauf ticket-webapp) et en retirant Junit (présent par défaut lors de l'initialisation avec Maven), mais je ne m'attends pas à ce que ça ait un impact sur l'affichage du .jsp sur mon navigateur. C'est vraiment ça qui me bloque et m'empêche de progresser dans le cours pour l'instant.

              J'ai bien cherché des tutos sur internet pour indiquer comment afficher une simple page d'un sous-module Maven mais je n'ai rien trouvé qui correspondait à mes attentes. Et ça me dérange que le cours d'Open Classrooms sur Maven ne soit pas très clair là-dessus non plus. Enfin si j'ai suivi un tuto, mais comme à la fin il n'expliquait pas comment afficher l'application web sur mon ordinateur j'ai fini par m'embrouiller les pinceaux : http://websystique.com/maven/creating-maven-multi-module-project-with-eclipse/

              Donc si quelqu'un peut m'expliquer pas à pas comment créer un projet Maven multi-module qui tourne sur serveur local Tomcat et afficher sur mon navigateur un jsp d'un sous-module ça serait cool.

              • Partager sur Facebook
              • Partager sur Twitter
                13 octobre 2020 à 12:29:26

                Bonjour,

                J'ai moi aussi le même problème. Pour info si on a 3 JSP pour pas grand chose c'est que l'on suit le cours sur MAven...

                Donc on fait des packaging application quasiment vide.

                • Partager sur Facebook
                • Partager sur Twitter

                Erreur 404 avec Maven et Tomcat

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown