xml可以';使用maven jetty:run运行时无法解析URI
我正在使用Maven构建一个Spring项目。 为了在本地测试它,我使用jetty:run-goal。(maven jetty插件) 当我执行它时,我得到:xml可以';使用maven jetty:run运行时无法解析URI,maven,jetty,Maven,Jetty,我正在使用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.
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/classes/db/${app.server.context}
构建时,app.server.context被maven替换(已验证)
当我在tomcat中部署我的war或运行jetty:run时没有问题
我想问题是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>
..
..
。。
..
org.mortbay.jetty
jetty maven插件
${jetty.version}
${basedir}/target/classes
10
${basedir}/目标
${basedir}/target/MyApplication/WEB-INF/WEB.xml
${application.contextpath}
真的
${application.port}
${project.build.directory}/jetty-yyyy\u mm\u dd-request.log
3.
真的
假的
格林尼治标准时间
..
..
好的,我终于明白了问题所在。
我认为jetty有些搜索(jetty:run goal)
{Workspace}/MyApplication/src/main/webapp/WEB-INF/classes/db
或
{Workspace}/MyApplication/target/MyApplication/WEB-INF/classes/db
对于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>
它是Eclipse项目输出文件夹&不包含db文件夹(我在某种程度上排除了该输出文件夹,WAR已经包含了它)
所以我摆脱了那个排斥,一切都很好
{Workspace}/MyApplication/target/classes