我正在使用 Spring WebserviceTemplate 对服务进行 SOAP 调用。我进行了性能测试以查看它在负载下的表现。我还有一个拦截器,可以将传入请求中的标头参数复制到我正在调用的服务中。
@Component
public class HeaderPropagationInterceptor implements ClientInterceptor {
@Override
public boolean handleRequest(MessageContext messageContext) throws WebServiceClientException {
SoapMessage request = (SoapMessage) messageContext.getRequest();
Result result = request.getSoapHeader().getResult();
JAXB.marshal(getRequestHeader(), result);
return true;
}
当我运行性能测试时,我看到下面的语句阻塞了 4-5 秒
JAXB.marshal(getRequestHeader(), result);
这可能会阻塞有什么原因吗?