0

私はこれに非常に慣れていませんが、次の URL から json ファイルを取得したいと思います: https://builds.apache.org/job/Accumulo-1.5/api/json

この URL を ActiveMQ に入れたいと思います。コードは次のようになります。

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

<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
    <property name="connectionFactory">
        <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <!--Link naar activemq-->
            <property name="brokerURL" value="tcp://localhost:61616"/>
        </bean>
    </property>
</bean>

<bean id="downloadLogger" class="camelinaction.DownloadLogger"/>

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <dataFormats>
    <json id="json" library="Jackson"/>
    </dataFormats>

    <route>
        <from uri="jetty:https://builds.apache.org:443/job/Accumulo-1.5/api/json"/>
        <process ref="downloadLogger"/>
        <to uri="jms:TestQueue"/>
    </route>
    <route>
        <from uri="jms:TestQueue"/>
        <process ref="downloadLogger"/>
        <to uri="file:src/result"/>
    </route>
</camelContext>

</beans>

キューは機能しています。xml ファイルをキューに入れようとしましたが、問題はありませんでした。ただし、ルート構成の入力は既存の URL へのリンクです。

これは可能ですか?はいの場合、私のせいは何ですか?

前もって感謝します。

4

1 に答える 1

1

Spring DSL の代わりに Java DSL を使用して修正しました。

解決:

@Component
public class AccumoloToJmsRouteBuilder extends SpringRouteBuilder {

  @Override
  public void configure() throws Exception {

    from("timer://foo?fixedRate=true&delay=0&period=2000&repeatCount=1")
        .setHeader(Exchange.HTTP_METHOD, constant("GET"))
        .to("https://builds.apache.org:443/job/Accumulo-1.5/api/json")
        .convertBodyTo(String.class)
        .to("myProcessor")
        .log(LoggingLevel.DEBUG, "com.project", "HTTP GET response body: ${body}")
        .to("activemq://TestQueue");


  }
}
于 2013-04-19T13:00:28.930 に答える