2012-10-25 4 views
1

Java EE를 처음 사용하며 GET 서비스를 작성하려고합니다. webservice에서 값을 얻으려면 매개 변수로 서비스에 기본 키를 보내야합니다. 서버 측의 매개 변수 값에 널 (NULL)이 표시됩니다. 나는 여기서 기본적인 것을 놓치고 있음을 안다. getVehicleList에서저지 GET 매개 변수가 null을 반환합니다.

클라이언트 측 JUnit 테스트

//VehicleList 
     service = client.resource(UriBuilder.fromUri(
       "http://localhost:8081/mCruiseOnCarPool4All/carpool4all/VehicleList/Request").build()); 
     service.setProperty("identityHash", identityHash) ; 
     VehicleDetailsConcrete[] vehicleList = service.type(MediaType.APPLICATION_JSON).get(
       VehicleDetailsConcrete[].class); 
     assertNotNull(vehicleList) ; 
     assertTrue(vehicleList.length > 0) ; 

서버 측 서비스

@GET 
@Path ("Request") 
@Produces({ MediaType.APPLICATION_JSON }) 
public Response getVehicleList(@PathParam("identityHash") String identityHash) { 
    VehicleListRequest request = new VehicleListRequest(identityHash) ; 
    VehicleListResponse response ; 
    clientSession = sessionManager.getClientSession(identityHash) ; 
    clientSession.getSendQueue().sendRequest(request) ; 
    try { 
     response = (VehicleListResponse)clientSession.waitAndGetResponse(request) ; 
    } catch (WaitedLongEnoughException e) { 
     return Response.serverError().build() ; 
    } catch (UnableToResolveResponseException e) { 
     return Response.serverError().build() ; 
    }; 
    return Response.ok(response).build(); 
} 

identityHash 나는 그것이 setParam을 할 것입니다 가정, setProperty는 사용하고

null입니다. 나는 이것이 내가 놓친 것임을 확신한다. setParameter 일종의 호출입니다.

답변

2

잘못된 방법을 사용하고 있습니다. WebResource.setProperty은 검색어 매개 변수를 설정하는 데 사용되지 않습니다.

당신이 무엇을 원하는지 확실하지 않습니다. identityHash. @GET 방법에서는 @PathParam을 사용합니다. 그러나이 방법은 @Path{identityHash}이 없습니다.

이 때문에 @QueryParam을 사용한다고 가정합니다.

빌드 귀하의 URI 포함 쿼리 매개 변수 :

URI uri = new URI("http", 
        null, 
        "localhost", 
        8081, 
        "/mCruiseOnCarPool4All/carpool4all/VehicleList/Request", 
        "identityHash=YourIdentityHash", 
        null); 
service = client.resource(uri); 

당신은 J2EE를 사용하지만, 자바 EE되지 않습니다. J2EE는 Java EE 5 이전에 사용 된 이름이었습니다.

+0

시도해 보았습니다. 감사합니다. – Siddharth

관련 문제