Java Jersey测试中的请求返回404
这个问题的现有答案对我没有帮助——我正在对我的应用程序的根路径运行简单的测试,但我总是得到404作为响应状态代码。我正在Tomcat9上运行应用程序,我的配置在Java Jersey测试中的请求返回404,java,jersey,jersey-test-framework,Java,Jersey,Jersey Test Framework,这个问题的现有答案对我没有帮助——我正在对我的应用程序的根路径运行简单的测试,但我总是得到404作为响应状态代码。我正在Tomcat9上运行应用程序,我的配置在web.xml中 依赖项列表(我希望我没有忘记什么): 我正在尝试测试的控制器: package com.sigma_hotel_manager; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path;
web.xml
中
依赖项列表(我希望我没有忘记什么):
我正在尝试测试的控制器:
package com.sigma_hotel_manager;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.server.mvc.Viewable;
@Path("/")
public class WelcomeController {
@GET
@Produces(MediaType.TEXT_HTML+";charset=UTF-8")
public Viewable getHome(@Context HttpServletRequest request) {
request.setAttribute("title", "Sigma Hotel Manager");
return new Viewable("/welcome/index");
}
}
实际测试:
package com.sigma_hotel_manager;
import static org.junit.Assert.assertEquals;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.DeploymentContext;
import org.glassfish.jersey.test.JerseyTest;
import org.glassfish.jersey.test.ServletDeploymentContext;
import org.glassfish.jersey.test.grizzly.GrizzlyWebTestContainerFactory;
import org.glassfish.jersey.test.spi.TestContainerException;
import org.glassfish.jersey.test.spi.TestContainerFactory;
import org.junit.Test;
public class WelcomeControllerTest extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig(WelcomeController.class);
}
@Override
protected DeploymentContext configureDeployment() {
return ServletDeploymentContext.builder(configure()).build();
}
@Override
protected TestContainerFactory getTestContainerFactory() throws TestContainerException {
return new GrizzlyWebTestContainerFactory();
}
@Test
public void getHomeIsSuccessful() {
Response response = target("/").request().get();
assertEquals("HTTP response should be 200: ", Status.OK.getStatusCode(), response.getStatus());
assertEquals("HTTP content type should be: ", MediaType.TEXT_HTML, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
}
}
package com.sigma_hotel_manager;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.server.mvc.Viewable;
@Path("/")
public class WelcomeController {
@GET
@Produces(MediaType.TEXT_HTML+";charset=UTF-8")
public Viewable getHome(@Context HttpServletRequest request) {
request.setAttribute("title", "Sigma Hotel Manager");
return new Viewable("/welcome/index");
}
}
package com.sigma_hotel_manager;
import static org.junit.Assert.assertEquals;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.DeploymentContext;
import org.glassfish.jersey.test.JerseyTest;
import org.glassfish.jersey.test.ServletDeploymentContext;
import org.glassfish.jersey.test.grizzly.GrizzlyWebTestContainerFactory;
import org.glassfish.jersey.test.spi.TestContainerException;
import org.glassfish.jersey.test.spi.TestContainerFactory;
import org.junit.Test;
public class WelcomeControllerTest extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig(WelcomeController.class);
}
@Override
protected DeploymentContext configureDeployment() {
return ServletDeploymentContext.builder(configure()).build();
}
@Override
protected TestContainerFactory getTestContainerFactory() throws TestContainerException {
return new GrizzlyWebTestContainerFactory();
}
@Test
public void getHomeIsSuccessful() {
Response response = target("/").request().get();
assertEquals("HTTP response should be 200: ", Status.OK.getStatusCode(), response.getStatus());
assertEquals("HTTP content type should be: ", MediaType.TEXT_HTML, response.getHeaderString(HttpHeaders.CONTENT_TYPE));
}
}