接続に使用する多数の SOAP サービスがあり、同じサービスへの最初の接続を統合から開始するのに多くの時間がかかり、その後のリクエストは応答時間を 60% 短縮しています。
JAXB バインディングの初期化で分析
@Configuration
public interface WSCommons {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
@Bean
static Jaxb2Marshaller jaxb2Marshaller() {
marshaller.setPackagesToScan("com.abc");
return marshaller;
}
}
最初のリクエストですべてをスキャンしてマーシャラーを作成するには、かなりの時間がかかります。
しかし、
Bean が初期化されると、少数の要求に対して高速に動作します。サービス フローがしばらくアイドル状態になり、要求が再び流れ始めると、MarshallingWebServiceOutboundGateway は非常に遅くなります。
Jaxb2Marshaller は静的であり、この場合は再初期化するために停止する必要があります。
初期化で間違ったことをしている可能性があります。
ありがとう