Получение исключения FileNotFoundException при развертывании войны с использованием плагина Maven Jetty

Я использую Maven 3.0.3 с плагином Jetty. Я получаю сообщение об ошибке ниже:

java.io.FileNotFoundException: не удалось открыть ресурс ServletContext [/WEB-INF/applicationContext.xml

чего я не понимаю, потому что файл присутствует в target/mywar/WEB-INF/applicationContext.xml. Я называю этот файл в моем web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
    <display-name>/jx-production-1.0-SNAPSHOT</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>Any ideas what I'm missing? Here is my Jetty plugin definition in my pom.xml …
    <profile>
        <id>jetty</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>7.2.2.v20101205</version>
                    <configuration>
                        <webAppConfig>
                            <contextPath>/all-new-jx</contextPath>
                            <descriptor>target/jx-1.0-SNAPSHOT/WEB-INF/web.xml</descriptor>
                        </webAppConfig>
                        <jettyConfig>config/jetty7/jetty.xml</jettyConfig>
                        <scanIntervalSeconds>10</scanIntervalSeconds>
                        <contextHandlers>
                            <contextHandler implementation="org.eclipse.jetty.server.handler.ContextHandler">
                                <contextPath>/all-new-jx-web</contextPath>
                                <resourceBase>${project.basedir}/target/web</resourceBase>
                                <handler implementation="org.eclipse.jetty.server.handler.ResourceHandler" />
                            </contextHandler>
                        </contextHandlers>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.eclipse.jetty</groupId>
                            <artifactId>jetty-rewrite</artifactId>
                            <version>7.2.2.v20101205</version>
                            <type>jar</type>
                            <scope>runtime</scope>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </profile>

Я получаю длинную неприятную ошибку:

Спасибо за ваш совет.

Я предполагаю, что вы используете цель пробега, т.е. target/mywar/WEB-INF/applicationContext.xml? Это запускает веб-приложение «на месте», то есть ищет классы в web.xml или в зависимостях вашего проекта и загружает веб-ресурсы из <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"> <display-name>/jx-production-1.0-SNAPSHOT</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param>Any ideas what I'm missing? Here is my Jetty plugin definition in my pom.xml … <profile> <id>jetty</id> <build> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.2.2.v20101205</version> <configuration> <webAppConfig> <contextPath>/all-new-jx</contextPath> <descriptor>target/jx-1.0-SNAPSHOT/WEB-INF/web.xml</descriptor> </webAppConfig> <jettyConfig>config/jetty7/jetty.xml</jettyConfig> <scanIntervalSeconds>10</scanIntervalSeconds> <contextHandlers> <contextHandler implementation="org.eclipse.jetty.server.handler.ContextHandler"> <contextPath>/all-new-jx-web</contextPath> <resourceBase>${project.basedir}/target/web</resourceBase> <handler implementation="org.eclipse.jetty.server.handler.ResourceHandler" /> </contextHandler> </contextHandlers> </configuration> <dependencies> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-rewrite</artifactId> <version>7.2.2.v20101205</version> <type>jar</type> <scope>runtime</scope> </dependency> </dependencies> </plugin> </plugins> </build> </profile> (при условии, что макет каталога по умолчанию). Он ничего не найдет в _4_. Вы можете использовать одну из других целей плагина пристани, но я бы рекомендую просто переместить свой applicationContext.xml в путь к классам и использовать _5_ в качестве _6_.


person Dave    schedule 04.08.2011    source источник


Ответы (1)


Да, я использую целевой причал: запустите и скопируйте необходимые ресурсы, чтобы src / main / webapp работал, большое спасибо за ваше объяснение.

person Ryan Stewart    schedule 04.08.2011
comment
Ссылка на цели плагина причала больше не действительна, так как codehaus перемещается - person Dave; 05.08.2011
comment
2011-08-04 14: 08: 56.677: WARN :: Не удалось запустить контекст omjpJettyWebAppContext {/ all-new-jx, файл: / Users / davea / Documents / workspace / NissanUSA2 / Technology / nna / mycousa / jx / src / main / webapp /}, файл: / Users / davea / Documents / workspace / NissanUSA2 / Technology / nna / mycousa / jx / src / main / webapp / org.springframework.beans.factory.BeanDefinitionStoreException: IOException, анализирующий XML-документ из ServletContext ресурс [/WEB-INF/applicationContext.xml]; вложенное исключение - java.io.FileNotFoundException: не удалось открыть ресурс ServletContext [/WEB-INF/applicationContext.xml] в org.eclipse.jetty.server.handler.ContextHandler.startContext (ContextHandler.java:641) в org.eclipse. jetty.servlet.ServletContextHandler.startContext (ServletContextHandler.java:228) в org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1181) в org.eclipse.jetty.server.handler.Conart. java: 584) на org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:496) на org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) на org.eclipse.jetty .server.handler.HandlerCollection.doStart (HandlerCollection.java:226) в org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:164) в org.eclipse.jetty.util.component.AbjectCycle.Abstract (AbstractLifeCycle.java:55) на org.eclipse.jetty. server.handler.HandlerCollection.doStart (HandlerCollection.java:226) на org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) на org.eclipse.jetty.server.handler.HandlerWrapper.do HandlerWrapper.java:93) на org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) на org.eclipse.jetty.server.handler.HandlerWrapper.doStart (HandlerWrapper.java:93) на org .eclipse.jetty.server.Server.doStart (Server.java:243) в org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) в org.apache.maven.plugin.DefaultBuildPluginMoager.exe (DefaultBuildPluginManager.java:101) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:209) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor) в java:15 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) в org.apache.maven.lifecycle. internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) в org.apache.maven.lifecycle.internal. LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) по адресу org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) по адресу org.apache.maven.lifecycle.internal.cutecycle (Lifecycle: 161) на org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:319) на org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) на org.apache.maven.cli.MavenCli.execute (MavenCli .java: 537) на org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) на org.apache.maven.cli.MavenCli.main (MavenCli.java:141) на org.codehaus.plexus. classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) на org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) на org.codehaus.plexus.classworlds.launcher.Launcher.mainWith Launcher.java:409) в org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352) Вызвано: java.io.FileNotFoundEx ception: не удалось открыть ресурс ServletContext [/WEB-INF/applicationContext.xml] в org.eclipse.jetty.server.handler.ContextHandler.startContext (ContextHandler.java:641) в org.eclipse.jetty.servlet.ServletContextHandler.st (ServletContextHandler.java:228) в org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1181) в org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:584) в org. eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:496) на org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) на org.eclipse.jetty.server.handler.Handler.Handler. doStart (HandlerCollection.java:226) в org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:164) в org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.start (AbstractLifeCycle.start) в org.eclipse.jetty.server.handler.HandlerCollection.doStart (Обработчик Collection.java:226) на org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) на org.eclipse.jetty.server.handler.HandlerWrapper.doStart (HandlerWrapper.java:93) в org .eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) на org.eclipse.jetty.server.handler.HandlerWrapper.doStart (HandlerWrapper.java:93) на org.eclipse.jetty.server.Server.Server. .doStart (Server.java:243) в org.eclipse.jetty.util.component. AbstractLifeCycle.start (AbstractLifeCycle.java:55) в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) в org.apache.maven.lifecycle.internal.MojoExejcutor.exe на org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) на org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) на org.apache.maven.lifecycle .internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) в org.apache.reternal.maven.lifecycle.info .java: 183) на org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:161) на org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:319) на org.apache.maven. DefaultMaven.execute (DefaultMaven.java:156) в org.apache.maven.cli.MavenCli.execute (MavenCli.java:537) на org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) на org.apache.maven.cli.MavenCli.main ( MavenCli.java:141) на org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) на org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) в org .codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) в org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352) - person sweetfa; 28.04.2016