我正在使用Maven构建Spring项目。 为了在本地进行测试,我使用的是jetty:run goal。 (maven jetty插件)
当我执行它时,我得到:
Caused by:
java.io.FileNotFoundException: ServletContext resource [/WEB-INF/classes/db/]
cannot be resolved to URL because it does not exist
at
org.springframework.web.context.support.ServletContextResource.getURL
(ServletContextResource.java:154)
/ WEB-INF / classes / db /在我的WEB.xml文件中,如下所示:
/ WEB-INF /类/分贝/ $ {app.server.context}
app.server.context在构建时被maven取代(已验证)。
当我在tomcat中部署战争或运行jetty时,没有问题:run-explosion 我想问题是maven在从未打包的资源运行时无法解析/ WEB-INF / classes / db /。我怎样才能解决它?
这是我的jetty插件的maven配置:
..
..
<plugin>
<!-- http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin -->
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<!-- <scanIntervalSeconds>10</scanIntervalSeconds> -->
<classesDirectory>${basedir}/target/classes</classesDirectory>
<scanIntervalSeconds>10</scanIntervalSeconds>
<war>${basedir}/target</war>
<webAppConfig>
<descriptor>${basedir}/target/MyApplication/WEB-INF/web.xml</descriptor>
<contextPath>${application.contextpath}</contextPath>
<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>
</webAppConfig>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>${application.port}</port>
</connector>
</connectors>
<requestLog implementation="org.eclipse.jetty.server.NCSARequestLog">
<filename>${project.build.directory}/jetty-yyyy_mm_dd-request.log
</filename>
<retainDays>3</retainDays>
<append>true</append>
<extended>false</extended>
<logTimeZone>GMT</logTimeZone>
</requestLog>
</configuration>
</plugin>
..
..
答案 0 :(得分:0)
好的,我终于明白了这个问题。 我认为码头有点搜索(码头:跑步目标)
{工作区} /所有MyApplication / SRC /主/ web应用/ WEB-INF /类/分贝
或
{工作区} / MyApplication的/目标/所有MyApplication / WEB-INF /类/分贝
用于web.xml配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/db/*Context_Tomcat.xml
/WEB-INF/classes/*Context.xml
</param-value>
</context-param>
然而, 我有点意识到它正在搜索
{Workspace}/MyApplication/target/classes
这是Eclipse项目输出文件夹&amp;不包含db文件夹(我有点将其排除在该输出文件夹之外,WAR已经包含它。)
所以我摆脱了那种排斥,一切都很好。