Getting FileNotFoundException when deploying war using Maven Jetty plugin

10,466

I assume you're using the run goal--i.e. mvn jetty:run? That runs a webapp "in place", meaning it looks for classes in target/classes or in your project dependencies, and it loads web resources from src/main/webapp (assuming default directory layout). It won't find anything in target/mywar/.... You could use one of the other jetty plugin goals, but I'd recommend just moving your applicationContext.xml into the classpath and using classpath:/applicationContext.xml as your contextConfigLocation.

Share:
10,466
Dave
Author by

Dave

Updated on June 05, 2022

Comments

  • Dave
    Dave almost 2 years

    I'm using Maven 3.0.3 with the Jetty plugin. I'm getting the error below:

    java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml

    which I don't understand, because the file is present at target/mywar/WEB-INF/applicationContext.xml. I call this file in my 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>
    

    Here's the long, nasty error I'm getting:

    2011-08-04 14:08:56.677:WARN::Failed startup of context o.m.j.p.JettyWebAppContext{/all-new-jx,file:/Users/davea/Documents/workspace/NissanUSA2/Technology/nna/mycousa/jx/src/main/webapp/},file:/Users/davea/Documents/workspace/NissanUSA2/Technology/nna/mycousa/jx/src/main/webapp/ org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml] at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:641) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:228) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1181) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:584) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:496) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226) at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:164) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:93) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:93) at org.eclipse.jetty.server.Server.doStart(Server.java:243) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml] at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:641) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:228) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1181) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:584) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:496) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226) at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:164) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:93) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:93) at org.eclipse.jetty.server.Server.doStart(Server.java:243) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)

    Thanks for your advice.