我的工作有问题,我需要一些帮助。我有一个WebServiceTemplate配置,如下所示:
<bean id="serviceTest" class="org.springframework.ws.client.core.WebServiceTemplate">
<property name="marshaller" ref="jaxbMarshallerOpe" />
<property name="unmarshaller" ref="jaxbMarshallerOpe" />
<property name="messageSender">
<bean class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
</bean>
</property>
<property name="interceptors">
<list>
<ref bean="soapMessageInterceptor" />
</list>
</property>
<property name="defaultUri" value="?????????????" />
<constructor-arg ref="messageFactory" />
</bean>
我完美的中心是用数据库中的某个值替换 value =“?????????????”或者在我的应用程序中为变量添加值。有没有办法做到这一点?
我真的需要一种动态方式将WSDL地址放在那里,因为我的客户端可以更改服务。不经常,但这是可能的。
有谁知道我怎么能做到这一点?
答案 0 :(得分:1)
您可以使用<context:property-placeholder>
来解析Properties
提供的<context:property-placeholder>
的实际值:
<property name="defaultUri" value="${web.service.url}" />
<强>更新强>
如果要在运行时更改defaultUri
,则应inject
将WebServiceTemplate
bean添加到某个服务,该服务将获取该属性,例如从DB手动调用setDefaultUri
。它适用于任何属性提供者:DB,文件更新,Web UI,JMX等。
答案 1 :(得分:0)
查看DestinationProvider界面。我认为这就是你所需要的。