스프링 구성을 포함하는 jar가 있습니다. 항아리 내부에 웹 서비스 주소를 구성하기 위해 일부 JNDI 변수를 검색하고 있습니다. 이제 스프링 배치 (Spring Batch)에서 동일한 병을 사용하고 있으며 동일한 스프링 구성 파일을 사용하고 싶습니다.jndi 변수를 속성 자리 표시 자로 노출
내 문제는 내가 (@Value로 내 변수를 얻을 수있는이
<context:property-placeholder system-properties-mode="OVERRIDE" ignore-unresolvable="true" />
를 사용하여
java -DmyFoo=bar
내 일괄 처리 시스템 등록 정보로 웹 서비스 주소를 전달하고 있다는 점이다 "myFoo ")
제 질문은 : 내 속성 자리 표시 자에서 JNDI 변수를 가져올 수있는 방법이 있습니까? 또는 JNDI로 가져 와서 속성 자리 표시 자에 노출시킬 수 있습니까?
은 내가 할 수 있기를 원하는 것은 교체이다이 나는 마침내 내가 필요한 것을 만드는 트릭을 발견이
<bean id="MBean" class="com.xxx.utils.ActivationMBean">
<property name="makeCall" value="${semantic.activation}" />
</bean>
대신 'PropertySourcesPlaceHolderConfigurer'를 사용하십시오. 대신 네임 스페이스 ' '를 사용하는 것이 좋습니다. –
좋아, 내가 한 일괄 처리에서이 일을했지만 어떻게 $ {semantic.activation}으로 JNDI를 얻을 수 있습니까? – ydemartino
'semantic.activation'이'JndiPropertySource'를 사용하여 해결되었다는 것을 알았는지 확실하지 않습니다. 그래서 당신은'ProperySourcesPlaceHolderConfigurer'를 사용하고 있다고 가정하고 이미 검색 중입니다. 따라서 기본적으로 교체 작업은 추가 작업없이 이미 수행되어야합니다. 버전이없는'spring-context.xsd' 또는 적어도 버전 3.0을 사용하고 있는지 확인하십시오. 그렇지 않으면 여전히 PropertyPlaceHolderConfigurer가됩니다. –