私はSpringWebServiceTemplateをプログラムでWebサービスクライアントとして使用しています。つまり、Springコンテナをインスタンス化することはありません。マーシャリング/アンマーシャリングにJaxb2Marshallerを使用しています。私のアプリケーションでは、SaajSoapMessageFactoryの単一のインスタンスとJaxb2Marshallerの1つのインスタンスを作成します。また、WebServiceTemplateの単一のインスタンスを作成し、以前に作成したSaajSoapMessageFactoryとJaxb2Marshallerのインスタンスを割り当てます。
私が作成したWebServiceTemplateはマルチスレッドで使用されます。つまり、複数のスレッドが同時にmarshalSendAndReceiveを呼び出すことができます。私の質問は-私の構成スレッドは安全ですか?Jaxb2Marshallerが心配です。javadocによると、Jaxb2Marshallersは必ずしもスレッドセーフではありません。Jaxbコンテキストを再初期化せずに、スレッドセーフな方法でJaxb2Marshallerを使用するにはどうすればよいですか?
余談ですが、スプリングリファレンスのspring-ws構成の例を見ると、Jaxb2Marshallerはスレッドセーフであると思いますが、Javadocはそれと矛盾しているようです。