當我在src/main/resources中放入xml資源,例如spring配置文件,日誌等時,當我在嵌入式tomcat插件中運行它時,這些文件對我的應用程序來說是不可讀的。但是將這些文件移動到src/main/java可以解決問題。tomcat7 maven插件無法訪問src/main/resources中的資源?
這裏是我使用的插件定義:
<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>
爲什麼當我把它們放在src /主/ Java,但不是當我把它們放在src /主/資源時,資源被發現運行mvn tomcat7:run
更新:我使用與M2E日食,我可以運行得很好使用運行方式>在服務器上運行,其指向本地Tomcat服務器的應用程序。文件夾結構是正確的,eclipse設置是通過m2e從pom.xml傳入的。
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)
在這種情況下的log4j-config.xml中
在src /主/資源,很少有這樣的說法並不存在上的src/main/resources文件夾中的文件更多的異常。
更新2:問題被證明是在這是造成.xml文件父POM一個<resources>
元件不被包括在所產生的輸出。
這是一個有點怪異,因爲我perso使用,沒有任何問題 你有什麼樣的錯誤?任何樣品重現? –