2014-04-07 7 views
0

먼저 JBoss EAP 6.2 (JBoss AS 7.2를 사용)에서 시스템 등록 정보를 확인한 다음 jar 내부에있는 등록 정보를 확인합니다. Spring 3.2 PropertySourcesPlaceholderConfigurer with JBoss EAP 6.2

나는
<context:property-placeholder location="classpath:xxx.properties" /> 

을 시도하지만이 항아리하지 J 보스에서 시스템 속성의 속성을 사용합니다. 는 또한 기존의 PropertyPlaceholderConfigurer와를 사용한다
<context:property-placeholder location="classpath:xxx.properties" system-properties-mode="OVERRIDE" /> 

을 시도하지만,이 또한 여전히 항아리에 속성을 사용합니다. 또한 3.0 (3.2 대신) 스프링 xsd를 설정하려고했지만 아무 소용이 없습니다.

그러면 Spring이 JBoss의 등록 정보를 확인한 후 jar의 등록 정보를 확인하도록하려면 어떻게해야합니까?

편집 : OVERRIDE를 다른 옵션 (ENVIRONMENT, NEVER 및 FALLBACK)으로 대체하려고 시도했지만 로컬 속성에 정의 된 값으로 끝납니다.

+0

당신은'시스템 properties'이'key'를 원하는 포함 정말 확실한가요? –

+0

예, 로컬 속성에서 키를 제거하면 시스템 속성에 정의 된 값이 표시됩니다. – MystyxMac

+2

글쎄, 당신은'에 대한 중복 설정을 가지고있을 수 있으며,'OVERRIDE' 이후에는 중복 설정이 있습니다. –

답변

1

Artem Bilan의 의견을 읽은 후 다시 (중복이 없는지 확인하기 위해) 동일한 항목을로드하지만 Java (Properties.load()) 내에서로드하는 클래스를 찾았습니다. 이로 인해 Spring을 통해로드하려고 시도한 system properties을 덮어 씁니다. 응용 프로그램 등록 정보 파일을 노출

1

, 우리가했던 다음

  • com/ourcompany/configuration/main라는 디렉토리 struction에 JBoss 모듈을 생성하고 (모듈 디렉토리에) 다른 모든 JBoss 모듈과 함께 그것을 배치 .

  • 해당 디렉토리에 module.xml을 작성했습니다.

  • 모든 * .properties 파일을 해당 디렉토리에 배치했습니다.

  • 구성 디렉토리를 모든 응용 프로그램에서 볼 수 있도록 모든 응용 프로그램에 대해 jboss-deployment-structure.xml 파일을 사용하지 않으려면 standalone.xml (JBoss 구성 파일)에서 다음을 작성하십시오.

그런 다음 모든 속성은 예상대로 클래스 경로에 있습니다.

을 Module.xml :

<module xmlns="urn:jboss:module:1.1" name="com.ourcompany.configuration"> 
    <resources> 
     <resource-root path="."/> 
    </resources> 
</module> 

standalone.xml :

<subsystem xmlns="urn:jboss:domain:ee:1.1"> 
    <global-modules> 
     <module name="com.ourcompany.configuration" slot="main"/> 
    </global-modules> 
</subsystem> 
+0

모든 시스템 등록 정보가 standalone.xml에 있어야한다는 문제를 해결할 수 있습니다. +1 – MystyxMac