2010-05-19 1 views
1

나는 매우 혼란스러운 문제에 부딪혔다. 그것은 나를 당혹스럽게 만들었다. 그리고 누군가 내가 이것에 대한 통찰력을 줄 수 있는지 궁금해하고 있었다.스프링/OSGi의 임베디드 ActiveMQ 브로커 문제

기본적으로 내가하려는 것은 내 OSGi 번들 중 하나의 Spring 컨텍스트 (임베디드 ActiveMQ 브로커)를 설정하는 것입니다 (Felix에서). 번들을 다운로드했고 this 페이지에 나열된 모든 종속성을 다운로드했습니다. 그들은 모두 운영되고 있습니다. 여기 내 Spring 컨텍스트 XML 파일의 모습입니다 :

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:osgix="http://www.springframework.org/schema/osgi-compendium" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:util="http://www.springframework.org/schema/util" 
xmlns:jms="http://www.springframework.org/schema/jms" 
xmlns:amq="http://activemq.apache.org/schema/core" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
    http://www.springframework.org/schema/osgi-compendium http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd 
    http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd 
    http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> 

<!-- some uninteresting parts ommited --> 

<!-- JMS Configurations --> 

<amq:broker useJmx="false" start="true"> 
    <amq:transportConnectors> 
    <amq:transportConnector uri="tcp://localhost:0"/> 
    </amq:transportConnectors> 
</amq:broker> 

<!-- other ActiveMQ configs such as destinations and whatnot --> 

이 나에게 꽤 좋아 보인다. 그러나, 시작하는 동안 나는 다음과 같은 메시지가 얻을 : 나는 사람 (나는 또한 사용하고 있습니다) Eclipse에서 유사한 문제가 발생을 발견했습니다

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 41 in XML document from URL [bundle://121.0:0/META-INF/spring/bundle-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'amq:broker'. 

을 그들은 분명히 번들 이클립스 점을함으로써 그것을 해결. ActiveMQ jar의 xsd 파일. 나는 아아, 같은 일을하려고 애썼다.

아무에게도 내가 누락 된 부분에 대한 아이디어가 없습니까?

미리 감사드립니다.

답변

1

xmlns : * 및 xsi : schemalocation = ... 미세한 치아 빗이있는 줄로 가보는 것이 좋습니다. 예상치 못한 것을 발견 할 수도 있습니다.

+1

비록 이것이 받아 들여졌지만 좋은 대답은 아닙니다. 이것은 주석이어야합니다. –

4

그냥 당신에게 피드백을 사람을주고, 문제는 ActiveMQ를 XSD의 버전 번호를 지정하여 얼마 전에 해결되었다 예 : 난 더 이상 그와 같은 CONFIGS를로드하지 않은 그러나

http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd" 

(비록 내가 지금 진지하게 생각하고 있지만, 우리 친구가 제안했던 것처럼 웅장한 실론 우드 비둘기 교배 의식을 연구하기 위해 프로그래밍을 떠난 것은 아니지만). 현재 응용 프로그램 외부에서 실행중인 브로커와 작업 중이므로 구성을로드하는 작업이 약간 다릅니다.

+2

문제에 대한 해결책을 찾은 다음 답변으로 게시하는 경우 해당 문제의 다른 사용자도 찾을 수 있도록 해당 대답을 수락해야합니다. –

0

번들 'org.apache.activemq-core'(예 : '춘분으로 번들 88')을 나열하고 activemq.xsd 파일을 내보내는 경로를 찾습니다 (META-INF ... 시작). , amq broker xml config와 함께 번들로 가져 오기를 확인하십시오 (예 : osgi.bnd의 Import-Packages에 추가하십시오)