2015-09-23 8 views
6

मैं अक्का, अपाचे कैमल, वसंत को जोड़ना चाहता हूं और उसी परियोजना में तीन चीजों का लाभ उठाने के लिए आगे की तरह नहीं जानता हूं।अक्का ऊंट और वसंत

मैं सफलतापूर्वक

1. write some working code with akka, akka-camel extension and camel routes(Java DSL) 
2. use camel and spring (use java DSL but spring for transactions and etc..) 

अब मैं गठबंधन करने के लिए 1 और 2 किसी को भी मुझे इस लक्ष्य को हासिल करने के लिए सबसे आसान तरीका बता सकते हैं की जरूरत करने में सक्षम था?

संपादित कुछ लोग कहते हैं AKKA नहीं रह नीचे Why spring integration doc for akka exists only for 1.3.1 but not for next versions

लिंक के अनुसार वस्तु इन्स्टेन्शियशन में संघर्ष के कारण भी एक ऐसी ही सवाल एक उचित समाधान प्रस्तुत किया जा रहा बिना वहाँ है, लेकिन पोस्ट के बारे में 2 है वसंत का समर्थन करता है पुराने साल akka-camel 2.2.1 route definition using Spring XML

एक ब्लॉग पोस्ट (जो मैं लिंक को पकड़ नहीं मिल सकता है अभी) एक विधि वर्णित किया गया है जो सारांश में है, अभिनेताओं परिभाषित कर रहे हैं और अक्का तरह से इस्तेमाल किया है और जो भी संसाधन अक्का अभिनेता होना है वसंत का उपयोग कर तारित। लेकिन कोई ठोस उदाहरण नहीं था।

+0

कौन कभी नीचे वोट के लिए परीक्षा, मन करता है, तो आप एक जोड़ें:

val camel = CamelExtension(system) camel.context.addRoutes( new CustomRouteBuilder(system, system.actorOf(Props[EchoActor]))) 

इस परीक्षण का मामला आपको एक विस्तृत विचार दे देंगे यह भी कहना है कि आप मतदान क्यों कर रहे हैं। टिप्पणी बहुत उपयोगी हो सकती है। – SashikaXP

उत्तर

1

मैं कल्पना अपने # 2 इस तरह दिखता है:

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:ctx="http://www.springframework.org/schema/context" 
     xmlns:camel="http://camel.apache.org/schema/spring" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd > 

    <!-- Camel route configuration --> 
    <camelContext id = "testCamelRouteContext" xmlns="http://camel.apache.org/schema/spring"> 
     <route id="test_data_webservice"> 
      <from uri="jetty:http://localhost:8888/myTestService"/> 
      <log logName="HTTP LOG" loggingLevel="INFO" message="HTTP REQUEST: ${in.header.testdata}"/> 
      <process ref="myTestService"/> 
     </route> 
    </camelContext> 

    <context:annotation-config /> 

    <bean class="com.package.service" id="myTestService"/> 

     <bean id="genericDao" class="com.dao.Impl"> 
     <property name="dataSource" ref="datasource" /> 
    </bean> 

    <bean id="testingDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     datasource stuff 
    </bean> 
</beans> 

यह है कि आप के माध्यम से इस अक्का ऊंट संदर्भ प्राप्त कर सकते हैं संभव है? कुछ इस तरह।

अपने अक्का config में जोड़ें:

akka.camel.context-provider="myNewContext" 

न्यू ContextProvider वर्ग:

class myNewContext extends ContextProvider{ 
    override def getContext(system: ExtendedActorSystem): SpringCamelHybridContext 
} 

मैं इस जगह है जहाँ स्प्रिंग और अक्का के बीच सेम इंजेक्शन टक्कर हो सकता है अनुमान लगा रहा हूँ। मैंने पहले कभी जवाब नहीं दिया है, इसलिए मेरा जवाब छोटा है लेकिन मैं देखना चाहता था कि मैं आपको कुछ मदद प्रदान कर सकता हूं या नहीं।

0

पुराने धागे को पुनर्जीवित करना।

akka-springctx-camel लाइब्रेरी आपके जीवन को अक्का, वसंत, ऊंट, सीएक्सएफ इत्यादि को एकीकृत करने के लिए दर्द रहित बनाने के लिए है।

जोड़ें विरूपण साक्ष्य:

<dependency> 
    <groupId>com.github.PuspenduBanerjee</groupId> 
    <artifactId>akka-springctx-camel</artifactId> 
    <version>0.0.5</version> 
</dependency> 

अक्का config में कैमल प्रसंग प्रदाता जोड़ें:

akka.camel.context-provider=system.SpringCamelContextProvider 

ActorSystem की पकड़ प्राप्त करें:

implicit val system = SpringContextActorSystemProvider.create 

एक कस्टम RouteBuilder बनाएं [अन्य तरीका हो सकता है अक्का उपभोक्ता]

class CustomRouteBuilder(system: ActorSystem, echoActor: ActorRef) 
    extends RouteBuilder { 
    def configure { 
    from("direct:testEP") 
     .routeId("test-route") 
     .to(echoActor) 

    } 

कैमल (स्प्रिंग) प्रसंग प्राप्त करें और इसे करने के लिए रूट जोड़ें: https://github.com/PuspenduBanerjee/akka-springctx-camel/blob/master/src/test/scala/AkkaSpringCtxTestSpec.scala

संबंधित मुद्दे