Получение FileNotFoundException при развертывании войны с помощью плагина Maven Jetty - PullRequest
1 голос
/ 04 августа 2011

Я использую 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>

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

2011-08-04 14: 08: 56.677:WARN :: Ошибка запуска контекста omjpJettyWebAppContext {/ all-new-jx, файл: / Users / davea / Documents / workspace / NissanUSA2 / Технология / 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/applicationConte.вложенным исключением является java.io.FileNotFoundException: не удалось открыть ресурс ServletContext [/WEB-INF/applicationContext.xml] в org.eclipse.jetty.server.handler.ContextHandler.startContext (ContextHandler.java:641) в org.ecjetty.servlet.ServletContextHandler.startContext (ServletContextHandler.java:228) в org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1181) в org.eclipse.jetler.serler.dolertedoserJava: 584) в org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:496) в org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) в org.ecet.server.handler.HandlerCollection.doStart (HandlerCollection.java:226) в org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:164) в org.eclipse.jetty.utilbart.Ac(AbstractLifeCycle.java:55) at 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.doStart (HandlerWrapper.java:93) в org.eclipse.jet.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) в org.eclipse.jetty.server.handler.HandlerWrapper.doStart (HandlerWrapper.java:93) в org.eclipse.jetty.server.Server.doStart (.java: 243) at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) по адресу org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManache.j:: org: atmaven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:209) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) в org.apache.maven.lifecycle.internal.MojoExecutor.выполнить (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.LifecycleStarter.Secter161) в 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.LithuncCode (Launcher.mainLauncher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352) Причина:java.io.FileNotFoundException: не удалось открыть ресурс ServletContext [/WEB-INF/applicationContext.xml] в org.eclipse.jetty.server.handler.ContextHandler.startContext (ContextHandler.java:641) в org.eclipserv.jet.ServletContextHandler.startContext (ServletContextHandler.java:228) в org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1181) в org.eclipse.jetty.Context.HD) в org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:496) в org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:55) в org.eclipser.jethandler.HandlerCollection.doStart (HandlerCollection.java:226) в org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:164) в org.eclipse.jetty.util.component.ystart.cleJava: 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.doStart (HandlerWrapper.java:93) в org.eclipse.jetty.util.componentC.начало (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.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java.1life.1..ternal.joma.joint).execute (MojoExecutor.java:209) в 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.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) в org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStar1.:::::):в 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.odeWuncEx.Java: 409) в org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)

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

1 Ответ

7 голосов
/ 05 августа 2011

Я полагаю, вы используете цель запуска - то есть mvn jetty:run?При этом веб-приложение запускается «на месте», то есть ищет классы в target/classes или в зависимостях вашего проекта и загружает веб-ресурсы из src/main/webapp (при условии размещения каталога по умолчанию).Он ничего не найдет в target/mywar/....Вы можете использовать одну из целей подключаемого модуля , но я бы порекомендовал просто переместить ваш applicationContext.xml в путь к классу и использовать classpath:/applicationContext.xml в качестве contextConfigLocation.

...