使用maven jetty:run运行时,Web.xml无法解析URI

时间:2014-03-14 10:15:00

标签: 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.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>
..
..

1 个答案:

答案 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已经包含它。)

所以我摆脱了那种排斥,一切都很好。