0

httpリクエストを使用して2つのアプリケーション間で通信するためにJAXRSを使用しています。実装中、大学と議論がありました。同じリソース (org.apache.wink.client.Resource) を別のリクエストに使用することはできないと言いました。衝突が発生する可能性があるからです。

そんなことはあり得ないと主張し、すべてのリクエストに同じリソースを使用することで、パフォーマンスを向上させています。

以下はコード スニペットです。紛争の解決にご協力ください

public class jaxrsDeliveryService{

    private Resource queryResource;

    public void init(){
        servletPath = url + REMOVE_COUNT_SUFFIX_URL;
        queryResource = restClient.resource(servletPath);
        queryResource.contentType(APPLICATION_XML).accept(APPLICATION_XML);`
    }

    public QueryResponse getqueryResult(QueryInfoRequest qir){
        ClientResponse response = resource.put(qir);
        return response.getEntity(QueryResponse.class);          
    }
}
4

1 に答える 1

0

Resourceスレッドセーフについて何も言わないインターフェースです。したがって、その実装は安全ではない可能性があると想定する必要があります。クラスをスレッドセーフにしたい場合は、1) 同じResourceを使用しないか、2) その使用をsynchronizedブロックに入れます。

スレッド セーフを気にしない場合は、resource. パフォーマンスが少し上がります。

于 2012-12-18T13:45:01.980 に答える