我创建了一个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。
提前致谢!
答案 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的配置支持有关)。希望这有助于其他任何人!