2015-03-30 3 views
0

Я пытаюсь запустить unittest для jax-rs api, но я получаю сообщение об ошибке. Некоторые детали моей реализации:JAX-RS Jersey Junit Error

Контроллер!

@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(); 
    } 
} 

Мои <artifactId>thesis</artifactId> в pom.xml

, когда я запустить тест, я получаю эту ошибку:

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. 

есть кто-то идеи о том, проблема? Спасибо :-)

+0

Ну, у вас есть 404 и ожидается 200. Я бы предложил проверить, будете ли вы обслуживать что-то на конечной точке, о которой вы думаете, что вы - – beresfordt

+0

, о какой конечной точке вы имели в виду? Я вызвал запрос (GET) с commando, и я не получил ошибку. – emoleumassi

+0

Непосредственно это выглядит так, как ваш контроллер сопоставляется с '/ webservices', но вы отправляете запрос на'/thesis/webservices/'. Где-то вам нужно сопоставить свой сервер гризли с '/ thesis' или изменить свой путь запроса только на'/webservices'. –

ответ

0

Я разрешил это. Я изменил путь к/webservices, и он работает. Спасибо