12

Spring Web Services を使用して、サービスを Web サービスとして公開しています。私のSpring構成xmlファイルには、DefaultWsdl11DefinitionのインスタンスであるBeanがあります。設定する必要があるプロパティの 1 つはlocationUriです。これは完全修飾 Uri である必要がありますが、アプリケーションが dev から uat および production に昇格したときに、この値を変更する必要はありません。Spring は Web アプリケーションのコンテキスト ルートが何であるかを知っています。それで、構成ファイルで指定してそれにアクセスできる変数はありますか?

何かのようなもの:

<bean id="myWebServices"
    class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
    <property name="schemaCollection">
        <bean
            class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
            <property name="xsds" ref="xsdList"/>
            <property name="inline" value="true" />
        </bean>
    </property>
    <property name="portTypeName" value="myWebServices" />
    <property name="locationUri" value="${webContextRoot}/webServices" />
</bean>
4

4 に答える 4

3

あなたが説明したのと同様の問題がありました。プロパティファイルを使用してこれを行います

  • ws_dev.properties
  • ws_prod.properties

私はこのようにプロパティファイルを設定しました.配置プロパティはJava vm引数のようです

-Ddeployment=dev

<context:property-placeholder location="ws_${deployment}.properties"/>
于 2011-08-03T19:40:43.530 に答える
-1

ApplicationContextAware インターフェイスを Bean に追加し、それを WebApplicationContext にキャストしてから、ServletContext を取得できます。クラス org.springframework.web.context.ContextLoader も参照してください。

于 2011-08-03T18:55:11.653 に答える