我尝试为jax-rs api运行单元测试,但出现错误。 我的实现的一些细节:

控制器!

@Path("/webservices")
@Produces(MediaType.APPLICATION_JSON)
public class AController {

    public AController() {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(
                AConfiguration.class);
        AutowireCapableBeanFactory acbFactory = applicationContext
                .getAutowireCapableBeanFactory();
        acbFactory.autowireBean(this);
    }

    @GET
    public Response getAll() {
                         something hier...

考试:

public class AControllerTest {

    private static final int PORT = 8080;
    private static final String LOCALHOST = "http://localhost";
    private static final String GLOBAL_PATH = "/thesis/webservices/";

    private static final URI URI = getBaseURI();

    private HttpServer httpServer;
    private Client client;

    private static URI getBaseURI() {
        return UriBuilder.fromUri(LOCALHOST).port(PORT).build();
    }

    @Before
    public void setUp() throws IllegalArgumentException, NullPointerException,
            IOException {
        httpServer = com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory
                .createHttpServer(URI);
        httpServer.start();
    }

    @Test
    public void testGetAll() {

        client = Client.create(new DefaultClientConfig());
        WebResource webResource = client.resource(getBaseURI());
        ClientResponse response = webResource.path(GLOBAL_PATH)
                .accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
        assertEquals(200, response.getStatus());
    }

    @After()
    public void stopServer() {
        httpServer.stop();
    }
}

我在pom.xml中的<artifactId>thesis</artifactId>

当我运行测试时,出现以下错误:

Failed tests:   testGetAll(AControllerTest): expected:<200> but was:<404>
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.466s
[INFO] Finished at: Mon Mar 30 22:23:05 CEST 2015
[INFO] Final Memory: 18M/133M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project thesis: There are test failures.
[ERROR] 
[ERROR] Please refer to pathto/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project thesis: There are test failures.

有人对这个问题有想法吗? 谢谢 :-)

#1楼 票数:0

我解决了。 我将路径更改为/ webservices,并且可以正常工作。 谢谢

  ask by emoleumassi translate from so

未解决问题?本站智能推荐:

3回复

无法使用JSON实体测试Jax-rs

我正在尝试通过遵循以下https://jersey.java.net/documentation/latest/test-framework.html来测试Jax-rs资源, 我正在使用容器jersey-test-framework-provider-jdk-http 我可以声明状态码
4回复

JERSEY和JAX-RS

我正在尝试使用jersey和JAX-RS部署最简单的REST服务,但我收到此错误, HTTP错误:404 NOT_FOUND RequestURI = / hosting / demo / example由Jetty提供支持:// 我认为我已经做好了一切,下面是我正在使用的代码。
5回复

使用JAX-RS在REST API中进行错误处理

任务:不是在我的堆栈跟踪中接收一般的HTTP 500 Internal Server Error ,而是在客户端上同样可怕的堆栈跟踪,我希望看到我的自定义消息与另一个状态代码(例如403 ),对于开发人员来说,它将更加清晰,发生了什么事。 并向用户添加一些关于异常的消息。 以下是我的应用
1回复

基于注释的Spring / JAX-RS集成,没有web.xml

我试图使一个没有web.xml的Servlet 3.0 REST服务器,即仅依赖于Java类和注释。 我不确定如何同时使用Spring和servlet映射注册Resource类。 我目前有: 当我启动应用程序时,spring bean正确连接,但我不知道如何正确设置JAX-RS
2回复

如何在JAX-RS中处理意外的异常

我的技术堆栈是Tomcat(servlet 3.0),JAX-RS的Jersey,Spring和Hibernate。 当某些不可预期的错误(例如Hibernate中的某些数据转换错误)出现时,我不希望客户端看到Tomcat尝试默认打印的那些异常的堆栈跟踪。 但是,我想记录这些异常,以便我可以
3回复

使用JAX-RS混淆了JAX-RS和Jersey

我真的很困惑。 我已经尝试了一个带有tomcat的Jax-rs并使用所有注释我能够使用url调用我的服务。 所以没有Jax-rs,我可以简单地拥有一个servlet并调用我的服务。 另外正如我所尝试的那样,jones-rs with jersey(正如我已经研究过它的JAX-RS )以及w
11回复

JAX-RS/Jersey 如何自定义错误处理?

我正在使用 Jersey 学习 JAX-RS(又名 JSR-311)。 我已经成功创建了一个根资源并且正在使用参数: 这很好用,并且可以处理 Date(String) 构造函数理解的当前语言环境中的任何格式(如 YYYY/mm/dd 和 mm/dd/YYYY)。 但是如果我提供一个无效或不被理解
2回复

JAX-RS和Spring Security - 获取经过身份验证的用户

我目前正在使用Jersey (JAX-RS impelemntation)和Spring的某些部分实现REST API。 我已经使用自定义过滤器和自定义AuthenticationEntryPoint在Spring Security中实现了无状态身份AuthenticationEntryP