1

Java EE は初めてで、GET サービスを作成しようとしています。Web サービスから値を取得するには、主キーをパラメーターとしてサービスに送信する必要があります。サーバー側のパラメーター値で 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();
}

getVehicleList の identityHash が null です

setParam を実行すると仮定して、setProperty を使用しています。それが私が欠けているものだと確信しています。setParameter ちょっと呼び出し。

4

1 に答える 1

2

間違った方法を使用しています。WebResource.setPropertyクエリパラメータの設定には使用されません。

あなたが何になりたいidentityHashのかわかりません。あなたの@GET方法では、を使用し@PathParamます。しかし、このメソッドにはがありませ{identityHash}@Path

このため、を使用したいと思います@QueryParam

インクルードURIクエリパラメータを作成します。

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

ノート

J2EEではなくJavaEEを使用しています。J2EEは、JavaEE5より前に使用されていた名前です。

于 2012-10-25T07:22:24.727 に答える