1

仕事に問題があり、助けが必要です。以下のような 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 アドレスを動的に配置する方法が本当に必要です。頻繁ではありませんが、可能性はあります。

どうすればこれを達成できるか知っている人はいますか?

4

2 に答える 2

1

を使用して、その に提供された<context:property-placeholder>から実際の値を解決できます。Properties<context:property-placeholder>

<property name="defaultUri" value="${web.service.url}" />

この問題に関するその他のドキュメントを参照してください: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer

アップデート

defaultUri実行時に変更する場合は、DB などからプロパティを取得して手動で呼び出すサービスinjectにBean を設定する必要があります。DB、ファイル更新、Web UI、JMX など、あらゆるプロパティ プロバイダーで機能します。WebServiceTemplatesetDefaultUri

于 2014-07-18T13:45:00.503 に答える