การเชื่อมต่อ ActiveMQ ใน Fabric8 โดยใช้ Blueprint แทน DS

ใน Fabric8 วิธีที่ต้องการรับการเชื่อมต่อ ActiveMQ คือผ่าน mq -fabric โปรไฟล์ ซึ่งจัดเตรียมออบเจ็กต์ ActitveMQConnection ผ่าน Declarative Services ตัวอย่างนี้มีให้ใน GitHubซึ่งได้ผลดีทีเดียว

อย่างไรก็ตาม ฉันยังไม่พบวิธีสำหรับ Declarative Services และ Blueprint Services เพื่อทำงานร่วมกันใน Fabric8 (หรือสภาพแวดล้อม OSGI ใด ๆ จริงๆ) ดังนั้นแอปพลิเคชัน OSGI ของฉันต้องใช้ DS หรือพิมพ์เขียว การผสมทั้งสองอย่างดูเหมือนจะไม่ใช่ทางเลือก

หากคุณต้องการใช้พิมพ์เขียว (ซึ่งฉันทำ) คุณต้องสร้างนายหน้าผ่าน UI ของเว็บก่อน จากนั้นกลับไปที่คอนโซลแล้วพิมพ์ cluster-list ค้นหาพอร์ตที่ Fabric8 กำหนดให้กับ นายหน้าแล้วกำหนดค่าการเชื่อมต่อในพิมพ์เขียวดังนี้:

<bean id="activemqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL" value="tcp://mydomain:33056" />
  <property name="userName" value="admin" />
  <property name="password" value="admin" />
</bean>

แม้ว่าวิธีนี้จะได้ผล แต่ก็ไม่เหมาะกับการใช้งานมากนัก เนื่องจากมีขั้นตอนที่ต้องดำเนินการด้วยตนเองบางขั้นตอนที่ฉันต้องการหลีกเลี่ยงหากเป็นไปได้ ปัญหาหลักคือฉันไม่รู้ว่าพอร์ตนั้นจะเป็นอย่างไร ฉันได้รวมไฟล์ปรับแต่งต่างๆ แล้วและไม่พบมันเลย

มีวิธีที่สะอาดกว่าและเป็นอัตโนมัติมากขึ้นในการรับการเชื่อมต่อ ActiveMQ ใน Fabric8 ผ่านพิมพ์เขียวหรือเราต้องใช้ Declarative Services หรือไม่


person Aston    schedule 10.06.2014    source แหล่งที่มา


คำตอบ (1)


สะดุดกับวิธีแก้ไขปัญหานี้ใน fabric-camel-demo ซึ่งแสดงให้เห็นวิธีสร้างอินสแตนซ์ ActiveMQConnectionFactory bean ใน Fabric8 ผ่าน Blueprint

<!-- use the fabric protocol in the brokerURL to connect to the ActiveMQ broker registered as default name -->
<!-- notice we could have used amq as the component name in Camel, and avoid any configuration at all,
as the amq component is provided out of the box when running in fabric -->
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="discovery:(fabric:default)"/>
    <property name="userName" value="admin"/>
    <property name="password" value="admin"/>
</bean>

หวังว่านี่จะช่วยได้!

person Aston    schedule 11.06.2014