多个WebServiceTemplate和SaajSoapMessageFactory性能

时间:2017-02-27 16:40:47

标签: java spring saaj webservicetemplate

我正在尝试提高现有应用程序的启动性能。 此应用程序当前正在对另外8个应用程序进行服务调用,因此有8个服务bean扩展了WebServiceGatewaySupport。每个服务bean都有自己的SaajSoapMessageFactory实例。

<bean id="serviceBean" class="com.test.ServiceBeanA" scope="prototype"
      p:marshaller-ref="marshaller"
      p:unmarshaller-ref="marshaller"
      p:defaultUri="${service.endpoint}"
      p:messageSender-ref="messageSender">
    <constructor-arg ref="**messageFactoryD**"/>

</bean>

我想知道这是否有必要,或者我是否只能为我的所有服务bean使用一个messageFactory实例。我不确定是否需要担心阻止邮件处理。 我之所以考虑这个,是因为每次启动SaajMessageFactory都会花费几秒钟时间&#34;创建SAAJ 1.3 MessageFactory ..&#34;。

在类似的说明中,每个服务bean也有一个Jaxb2Marshaller实例。我是否可以仅使用Jaxb2Marshaller的实例,并组合上下文路径。

1 个答案:

答案 0 :(得分:0)

SAAJ消息工厂和JAXB上下文是不可变的和线程安全的,因此没有理由不能为所有服务bean使用相同的实例。请注意,我不认为创建SAAJ消息工厂需要花费大量时间。另一方面,创建JAXB上下文可能是重量级的,具体取决于类的数量。