2013-06-10 2 views
1

Mule CE 3.3.0을 사용하고 있는데 PropertyPlaceHolder의 범위에 문제가 있습니다. 두 개의 뮬 애플리케이션 (writeApp 및 readApp)이 있다고 가정 해 보겠습니다. 아래에 정의 된 writeApp 응용 프로그램에서 나는 propertyPlaceholer 콩을 설정응용 범위 PropertyPlaceHolder 뮬의 봄

<spring:bean id="consignmentProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <spring:property name="ignoreUnresolvablePlaceholders" value="true"/> 
     <spring:property name="locations"> 
      <spring:list> 
       <spring:value>classpath:connections.properties</spring:value> 
        <spring:value>.....</spring:value> 
      </spring:list> 
     </spring:property> 
</spring:bean> 

그리고 readApp 응용 프로그램에서 나는 writeApp

<mule> 
    <flow name="readContextVariableFlow1" doc:name="readContextVariableFlow1"> 
     <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8085" path="read" doc:name="HTTP"/> 
     <append-string-transformer message="${prop.conn}" doc:name="Append String"/> 
     <object-to-string-transformer doc:name="Object to String"/> 
    </flow> 
</mule> 

문제에 정의 된 속성을 읽으려고 지금 내가 '이다 readApp에서 prop.conn 속성을 읽을 수 있지만 writeApp에 정의되어 있습니다. 각 응용 프로그램에 대해 특정 파일 속성을 정의 할 수 있습니다.

는 "readApp.prop.conn"와 "writeApp.prop.conn"와 같은, 당신은 상호 공유를 방지하기 위해 속성을 네임 스페이스 수있는 도움

+0

을 당신이 정말 뮬 응용 프로그램을 의미 "응용 프로그램을"말을 할 때, 흐름을, 오른쪽 (즉, 뮬 독립에 배포 된 zip 파일을.)? –

+0

예, 뮬 어플리케이션, 즉 zip 파일을 의미합니다. –

+0

정밀도에 감사드립니다. 그런 다음, 놀랍습니다. Spring이 한 소품의 시스템 속성에서 이러한 소품을로드하고 다른 소품의 시스템 소품에서 소품을 꺼내지 않는 한 놀라운 일입니다. –

답변

0

의 모든 종류에 미리 감사드립니다.

또는 시스템 특성을 끄십시오 :

<spring:beans> 
    <context:property-placeholder location="classpath:connections.properties" 
     ignore-unresolvable="true" system-properties-mode="NEVER" /> 
</spring:beans> 
+0

예, 알고 있습니다. 그러나 두 개의 다른 뮬 응용 프로그램에서 다른 파일이 아닌 한 파일의 가시성을 피하는 것이 있습니다. –

+0

좋아, 하나의 응용 프로그램에 대해 하나의 구성 파일 만 가질 수 있고 공유되지 않을 수도 있습니다. 응용 프로그램간에? –

+0

나는 그런 경우가 있다고 생각했는데, 하나의 앱에로드 된 속성이 시스템 속성으로로드되고 해결되지 않는 한 다른 앱에서 사용할 수있는 방법을 이해하지 못합니다. 두 번째 제안을 시도 했습니까? –