内部WebサービスのWSDL URLをSpringのbeans beans.xmlに、PropertyPlaceHolderConfigurerを使用して動的に渡したいとします。Spring PropertyPlaceholderConfigurerがプレースホルダを置き換えない
私のWebアプリケーションはWebLogic 10.3にデプロイされています。 WSDLのURLは、の外部にあるのアプリケーション(対応するドメインフォルダの直下、私のアプリケーションはのautodeployフォルダ内にあります)にあるプロパティファイルに含まれています。
Service.WSDL.PATH=http://localhost:8088/mockServiceSoap?WSDL
私の春のbeans.xmlの設定を:
set JAVA_PROPERTIES=%JAVA_PROPERTIES% %CLUSTER_PROPERTIES% -Dproperty.file.path.config=%DOMAIN_HOME%\Service.properties
これは私Service.propertiesファイルが含まれているものです:私は、このプロパティの場所はファイル以下のように自分のドメインのにあるsetDomainEnv.cmdファイルを設定しました:----
<bean id="file.path" class="java.lang.System" factory-method="getProperty">
<constructor-arg index="0"><value>property.file.path.config</value></constructor-arg>
</bean>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" ref="file.path"/>
</bean>
<bean id="myServiceId" class="com.test.service.ServiceImpl">
<property name="myServiceSoap">
<ref bean="myService"/>
</property>
</bean>
<bean id="myService" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean">
<property name="serviceInterface" value="com.test.service.ServiceSoap"/>
<property name="wsdlDocumentUrl" value="${Service.WSDL.PATH}"/>
</bean>
私は特にPPCのデバッグログを有効にし、これは私が自分のアプリケーションログで見たものである:
INFO org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 178 - Loading properties file from URL [file:D:/bea10.3/user_projects/domains/my_domain/Service.properties]
だから、Service.propertiesファイルがPPCによってロードされつつあるものの、${Service.WSDL.PATH}
を交換取得していないようです。
私はここで間違っていますか?
また、PPCがプレースホルダーの値をどの値で置き換えようとしたかを知るにはどうすればよいですか?ログファイルにその情報が含まれることを期待していましたが、そこには何もありませんでした。
何か助けていただければ幸いです。
試してみてください:ServletContextPropertyPlaceholderConfigurer - 違いが分かりません – Ralph
Application Startup Exceptionを取得しましたか、またはプロパティが置き換えられていませんか? – Ralph