我正在使用aquillian和wildfly embeded容器测试我的jax-rs服务。在此设置中,我试图了解服务器如何处理我的Web服务。为了进行设置,我在测试中进行了以下部署:
@Deployment
public static WebArchive create() {
return ShrinkWrap.create(WebArchive.class, "rest-service.war")
.addClasses(ProfileService.class,
Profile.class); // classes and other resources into the war
}
这样战争就会被部署并在可嵌入的容器中运行。但是,我的测试无法在ProfileService
中映射的任何网址上找到服务。是因为我的战争缺少一个servlet?具体来说,javax.ws.rs.core.Application
实例?或者我误解了EJB容器如何暴露jax-rs服务。
答案 0 :(得分:2)
这是因为你缺少一个扩展Application
的类,但是你不需要将它注册为servlet。只要注释@ApplicationPath
它就会被容器拾取。