0

我对此很陌生,但我想从此网址检索一个 json 文件:https ://builds.apache.org/job/Accumulo-1.5/api/json

我想把这个网址放在我的 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

使用 Java DSL 而不是 Spring 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 回答