我正在使用Spring WebserviceTemplate對服務進行SOAP調用。我運行性能測試來了解它在負載下的表現。我也有一個攔截器,用於將我的傳入請求中的標題參數複製到我打電話的服務中。JAXB.marshal阻止web服務調用
@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);
是否有一個原因,這可能會阻止?
您是否看到類['JAXB'](https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/JAXB.html)的javadoc?它說: 「*一般來說,性能不一定是最佳的 預計需要編寫性能關鍵代碼 的人將直接使用JAXB API的其餘部分*」 –
謝謝,但它通常會在100毫秒。我只在嘗試加載測試時纔看到此問題。這是否由我們造成這種延遲的任何機會同步?當我打開課程時,我看到該方法是靜態的但不同步 –
'JAXB.marshal'從哪裏來?這是第三方API嗎? – kolossus