[英]Spring MVC REST service - maven embedded Jetty gives 404
我创建了一个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
码头服务器启动时,当我将浏览器指向http://localhost:8080/WebApp
,可以看到我的欢迎页面,但是当我尝试访问我的任何REST调用时,都会得到普通的404。
REST服务在部署到tomcat或glassfish服务器上时可以正常工作。
我使用的是基于Java的Spring MVC配置,仅带有REST的调度程序,因为没有“真实的”网页。
谁能对我在这里做错的事情有所了解? 仅当部署到嵌入式Jetty时,REST服务才会提供404。
提前致谢!
好消息! 我能够通过改变来解决这个问题
<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的配置支持有关)。 希望这对其他人有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.