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);
これがブロックされる理由はありますか?