2012-11-16 1 views
0

Lorsque je mets des ressources xml telles que les fichiers de configuration printanière, la journalisation ... etc dans les ressources src/main /, ces fichiers ne sont pas lisibles par mon application lorsque je l'exécute dans le plugin tomcat embarqué. Cependant, déplacer ces fichiers dans src/main/java résout le problème.Les ressources de src/main/resources ne sont pas accessibles au plugin tomcat7 maven?

Voici la définition du plugin que j'utilise:

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
     <port>9090</port> 
     <path>/</path> 
      <contextFile>${basedir}/src/main/webapp/META-INF/context.xml</contextFile> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>${postgres.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-instrument-tomcat</artifactId> 
      <version>${spring.framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>javax.mail-api</artifactId> 
      <version>${javax.mail.version}</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>activation</artifactId> 
        <groupId>javax.activation</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
      <id>default-cli</id> 
      <goals> 
       <goal>deploy</goal> 
       <goal>run-war</goal> 
      </goals> 
      <phase>pre-integration-test</phase> 
     </execution> 
    </executions> 
</plugin> 

Pourquoi le ressources se trouvent quand je les mets dans src/main/java mais pas quand je les mets dans src/main/resources lorsque en cours d'exécution mvn tomcat7:run

MISE à JOUR: J'utilise Eclipse avec M2e je peux exécuter l'application très bien en utilisant exécuter en tant que> exécuter sur le serveur qui est pointé vers un serveur tomcat local. La structure du dossier est correcte, les paramètres eclipse proviennent du fichier pom.xml via m2e.

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener 
java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter: class path resource [log4j-config.xml] cannot be resolved to URL because it does not exist 
    at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:155) 
    at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

dans ce cas log4j-config.xml est dans src/main/ressources, il y a quelques exceptions comme ça en disant que les fichiers sur src/main dossier/ressources n'existent pas.

Mise à jour 2: Le problème est avéré être un élément <resources> dans le POM parent qui a été à l'origine des fichiers .xml de ne pas être inclus dans la sortie générée.

+0

Il est un peu bizarre que je PERSO utilisation que sans question quel genre d'erreur avez-vous? Tout échantillon à reproduire cela? –

Répondre

1

Normalement, lorsque éclipse essayer de trouver les fichiers qui sont définis par votre application .. il relie le src à src/main/java et src/main/ressources.voulez-vous voir les entrées suivantes dans le fichier .class de maven généré pour Eclipse ..

<classpath> 
    <classpathentry including="**/*.java" kind="src" path="src/main/java"/> 
    <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/> 

/**all repository entries are also here**/ 
</classpath> 

alors les ressources d'abord les chèques de tomcat si elles sont dans les ressources (et les contrôles dans le dossier java)

+0

Je suppose que le dossier de printemps maven strcture que vous avez créé n'a pas l'identification du dossier de ressources en tant que chemin de dossier SRC point de départ – user533

+0

Je ne vois pas une trace du mot éclipse dans la question. Et pas une étiquette disant éclipse non plus. Pourquoi supposez-vous qu'il utilise Eclipse? Il y a d'autres IDE que vous connaissez. Et cette question n'a rien à voir avec les IDE. C'est une question de ressources disponibles ou non. – maba

+0

@maba désolé de prendre à tort. Mon idée ici pour lui est de lui faire comprendre qu'il pourrait y avoir un problème dans la création de la structure des dossiers dans maven. Comme exemple je lui ai mis l'éclipse pour que ça lui soit utile pour trouver où ça va mal . – user533

Questions connexes