0

我正在使用 JAXRS 在使用 http 请求的两个应用程序之间进行通信。在实施过程中,我与我的大学发生了争执,他们说我不能将相同的资源(org.apache.wink.client.Resource)用于不同的请求,因为它可能会导致冲突。

我认为这样的事情不可能发生,并且通过对所有请求使用相同的资源,我正在提高性能。

Bellow是一个代码片段,请帮助解决我们的争议

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 回答