1

restyGwt を使用して jersey にリクエストを送信しています。クライアント側(request.cancel)でリクエスト オブジェクトを使用してリクエストを閉じましたが、クライアント側で閉じてもサーバーがリクエストを処理していることがわかりました。接続が停止しているサーバー。

クライアントがリクエストをキャンセルしたらすぐにサーバーに伝え、そのリクエストの処理を停止する方法が欲しい

これは私のクライアントの resty gwt コードです

@POST
@Produces("application/json")
@Consumes("application/json")
@Path("servicepoint/getAllServicepointAndCount")
public Request findAllServicepointandCount(@QueryParam("startIndex") Integer     startIndex,
        @QueryParam("maxSize") Integer maxSize,
        MethodCallback<ServicepointResponse> methodCallback);

これは、サーバーへのリクエストを行っている gwt クラスです

ServicepointRestyService service = GWT
            .create(ServicepointRestyService.class);
    ((RestServiceProxy) service).setResource(resource);

    final Request method=service.findAllServicepointandCount( index,     length,
            new MethodCallback<ServicepointResponse>() {

                @Override
                public void onFailure(Method method, Throwable exception) {
                    Window.alert(exception.getMessage());

                }

                @Override
                public void onSuccess(Method method,
                        ServicepointResponse response) {
                    Window.alert("response.getMassege");
                }
            });
    Timer t=new Timer() {

        @Override
        public void run() {
            Window.alert("cancelled");
            method.cancel();// cancel connection


        }
    };
    t.schedule(2000);
}

ジャージ実装

@POST
@Produces("application/json")
@Consumes("application/json")
@Path("/getAllServicepointAndCount")
public ServicepointResponse findAllServicepointandCount(
        @QueryParam("startIndex") Integer startIndex,
        @QueryParam("maxSize") Integer maxSize) {
    logger.finer("Entering startIndex" + startIndex + "" + maxSize);
    ServicepointResponse data = new ServicepointResponse();
    List<ServicepointPojo> spPojos = new ArrayList<>();

    try {
        while(true){
            System.out.println(new Date().getTime());
            Thread.sleep(1000);
        }catch (Exception e) {
        e.printStackTrace();

    }

2秒後にリクエストを停止しましたが、サーバーは停止しなかった日付と時刻を出力します。この機能を確認するためにこのコードを書きました

4

0 に答える 0