Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xml可以';使用maven jetty:run运行时无法解析URI_Maven_Jetty - Fatal编程技术网

xml可以';使用maven jetty:run运行时无法解析URI

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.

我正在使用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/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