142 votes

Erreurs d'imbrication des chemins de construction d'Eclipse

Je travaille sur une simple application web JSP/Servlet/Tomcat pour ma classe. Le professeur nous a demandé d'utiliser une structure de dossiers légèrement différente de la structure par défaut des projets web dynamiques. Plutôt que d'utiliser le dossier webcontent, il veut que tout notre code source soit placé sous src/main/java et src/main/webapp.

Lorsque je lance l'application, mon fichier de bienvenue s'affiche correctement, mais lorsque j'essaie d'accéder à mes servlets, j'obtiens :

 Http 500 SEVERE: Allocate exception for servlet InitDb

java.lang.ClassNotFoundException. Je suis presque sûr qu'il s'agit d'une erreur de chemin de construction. J'ai final/src sur le chemin de construction mais je reçois l'avertissement suivant

"Cannot nest 'final/src/main/webapp/WEB-INF/classes' inside 'final/src'. To enable the    nesting exclude 'main/' from 'final/src'

enter image description here

Je l'ai dans mon assemblée de déploiement :

<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> 

Lorsque j'exclus main/, l'avertissement disparaît, mais le problème n'est pas résolu. J'apprécierais tout conseil. Je vous remercie.

0voto

Sasha O Points 1751

Pour que le compilateur Eclipse fonctionne correctement, vous devez supprimer final/src du chemin des sources et ajouter final/src/main/java à la place. Cela peut également résoudre votre problème, car le répertoire de construction ne se trouvera plus dans le dossier des sources Java.

0voto

yrz Points 59

STS IDE

Cela dépend du dossier auquel on indique "Utiliser comme dossier source". Dans la structure de l'image, si l'on indique le dossier "target" ou "generated", on obtient l'erreur "nested". Mais dans le dossier "cxf", qui est le dernier, mentionné dans la section "plugin" du pom.xml et où commence la structure du paquet (comme indiqué dans le fichier .wsdl), c'est-à-dire le bon dossier à utiliser comme "source", il n'y a pas d'erreur.

0voto

Piro Points 883

Si les autres solutions n'ont pas fonctionné et que vous utilisez un plugin ajoutant des sources dans votre pom.xml, vérifiez-le. J'ai utilisé build-helper-maven-plugin pour ajouter des classes générées à partir de la spécification openapi avec une configuration incorrecte :

<source>${project.build.directory}/generated-sources/openapi/src</source>

au lieu de correct :

<source>${project.build.directory}/generated-sources/openapi/src/main/java/</source>

Donc, après correction :

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>3.3.0</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources/openapi/src</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

-4voto

JimmyZhang Points 60

Créez deux dossiers : final/src/ pour stocker le code source Java, et final/WebRoot/ .

Vous ne pouvez pas mettre la source et le webroot ensemble. Je pense que vous avez mal compris votre professeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X