2012-10-01 42 views
1

我試圖創建春天配置春天配置文件和Spring Integration的命名空間

<beans profile="profile1"> 
    <jms:outbound-channel-adapter id="sampleId"/> 
</beans> 

<beans profile="profile2"> 
    <jms:outbound-channel-adapter id="sampleId"/> 
</beans> 

(JMS:出站通道適配器是由Spring集成命名空間)

當創建這樣的情況下我得到複製豆ids異常...

任何想法爲什麼?

編輯。(活動的配置文件設置爲PROFILE1)

+1

你能發佈異常堆棧跟蹤嗎? –

回答

0

你必須提供當前上下文的情景模式。該令牌可設置爲:
環境變量
一個JVM屬性
網絡參數
綱領性
春天還會查找令牌,spring.profiles.default,它可以是用於設置默認配置文件(如果沒有使用spring.profiles.active指定)。

例子:

<servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
    <param-name>spring.profiles.active</param-name> 
    <param-value>web-dev</param-value> 
    </init-param> 
</servlet> 

其中的applicationContext的樣子:

<beans profile="web-dev, test-dev"> 
     <import resource="trace-context.xml"/> 
     <import resource="spring-data-jpa.xml"/> 
     <import resource="spring-security-roles.xml" /> 
    </beans> 

    <beans profile="web-dev"> 
     <bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" 
       p:location="/WEB-INF/spring.properties" /> 

     <import resource="spring-cache.xml"/> 
     <import resource="tiles-context.xml" /> 
     <import resource="themes-context.xml" /> 
    </beans> 

    <beans profile="test-dev"> 
     <bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" 
       p:location="classpath:spring.properties" /> 
    </beans> 
+0

我確實設置了活動配置文件,但是在架構驗證時失敗了 – Machu

+1

嗯我已經看到類似的東西,但在我的情況下使用ActiveMQ架構,例如org.springframework.web.context.ContextLoader:上下文初始化失敗 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:來自類路徑資源[au/gov/dha/messagecentre/messagecentre-jms.xml]的XML文檔中的第179行:是無效的;嵌套異常是org.xml.sax.SAXParseException; lineNumber:179; columnNumber:129; cvc-id.2:有多個ID值「messageCentreBroker」。這與beans中的amq:schema:

0

確保所有相關的XSD聲明使用> = 3.1的版本。配置文件功能在Spring 3.1版中添加。至少爲bean和jms命名空間設置。另請參閱我對類似SO問題here的回答。