Spring MVC REST服务 - maven嵌入式Jetty提供404

时间:2015-02-26 19:57:23

标签: java spring rest maven jetty

我创建了一个Spring MVC Web应用程序,它只提供了一个宁静的服务(以及一个默认的欢迎页面,用于手动测试是否正确部署)。

我还有一些使用Rest Assured测试我的REST服务的集成测试。问题当然是这些测试是在构建时运行的,但此时webapp还没有在线,所以这些测试总是会失败。这是使用嵌入式Jetty服务器解决的。所以我把以下内容放在我的pom.xml中:

<build>
    <finalName>WebApp</finalName>
    </plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.26</version>
            <configuration>
                <stopKey>STOP</stopKey>
                <stopPort>8005</stopPort>
                <scanIntervalSeconds>10</scanIntervalSeconds>
                <webApp>
                    <contextPath>/WebApp</contextPath>
                </webApp>
            </configuration>
            <executions>
                <execution>
                    <id>start-jetty</id>
                    <phase>pre-integration-test</phase>
                    <goals>
                        <goal>stop</goal>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <stopKey>STOP</stopKey>
                        <stopPort>8005</stopPort>
                        <scanIntervalSeconds>0</scanIntervalSeconds>
                        <daemon>true</daemon>
                    </configuration>
                </execution>
                <execution>
                    <id>stop-jetty</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>stop</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

当我运行命令mvn jetty:run时,jetty服务器启动,当我将浏览器指向http://localhost:8080/WebApp时,我可以看到我的欢迎页面,但是当我尝试访问任何REST调用时,我得到了平原404。

部署到tomcat或glassfish服务器上时,REST服务可以正常工作。

我使用基于Java的Spring MVC配置,只有一个REST调度程序,因为没有真正的&#39;网页。

任何人都可以透露一下我在这里做错了什么吗?只有在部署到嵌入式Jetty时,REST服务才会提供404。

提前致谢!

1 个答案:

答案 0 :(得分:-1)

好消息!我能够通过改变

来解决这个问题
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>

<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>

因此,该插件的较新版本可以解决这个问题(可能与基于Java的配置支持有关)。希望这有助于其他任何人!