Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 无法调用方法或将bean与camel一起使用_Xml_Spring_Routes_Apache Camel_Javabeans - Fatal编程技术网

Xml 无法调用方法或将bean与camel一起使用

Xml 无法调用方法或将bean与camel一起使用,xml,spring,routes,apache-camel,javabeans,Xml,Spring,Routes,Apache Camel,Javabeans,我对Camel非常陌生,但基本上,我有一个bean,它有一个名为populate的函数。Camel无法调用此方法,也不会激活路由中的任何内容。我不知道我做错了什么,有人能帮忙吗 我尝试使用populate()并在路径中填充,我还尝试摆脱@Handler 记录器也没有被调用,我只是把它放在那里看看会发生什么 这是我的路线,然后我会发布我的bean。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp

我对Camel非常陌生,但基本上,我有一个bean,它有一个名为populate的函数。Camel无法调用此方法,也不会激活路由中的任何内容。我不知道我做错了什么,有人能帮忙吗

我尝试使用populate()并在路径中填充,我还尝试摆脱@Handler

记录器也没有被调用,我只是把它放在那里看看会发生什么

这是我的路线,然后我会发布我的bean。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:camel="http://camel.apache.org/schema/spring"
   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="mockSql" class="tutorial.simple.route.MockSql"/>

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="direct:start"/>
    <log loggingLevel="DEBUG" message="logger" id="123" customId="true"/>
    <to uri="bean:mockSql?method=populate()"/>
  </route>
</camelContext>
</beans>

这是我的豆子:

package tutorial.simple.route;
import java.util.ArrayList;
import java.util.HashMap;

import org.apache.camel.Handler;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;


public class MockSql {
private static final Logger log = Logger.getLogger("mockSql");

    public MockSql(){
        log.setLevel(Level.DEBUG);
        log.debug("constructed mock sql");

    }
    @Handler
    public ArrayList populate(){
    ArrayList <HashMap> ary = new ArrayList<HashMap>();
    HashMap<String, String> hm = new HashMap();
    HashMap<String, String> hm2 = new HashMap();
    hm.put("n1", "j1");
    hm2.put("n2", "j2");

    ary.add(hm);
    ary.add(hm2);

    log.debug("populated mock sql");
    return ary;
}


}
package tutorial.simple.route;
导入java.util.ArrayList;
导入java.util.HashMap;
导入org.apache.camel.Handler;
导入org.apache.log4j.Level;
导入org.apache.log4j.Logger;
公共类MockSql{
私有静态最终记录器log=Logger.getLogger(“mockSql”);
公共MockSql(){
log.setLevel(Level.DEBUG);
调试(“构造的模拟sql”);
}
@处理者
公共ArrayList填充(){
ArrayList ary=新的ArrayList();
HashMap hm=新的HashMap();
HashMap hm2=新的HashMap();
hm.put(“n1”、“j1”);
hm2.put(“n2”、“j2”);
添加(hm);
添加(hm2);
调试(“填充的模拟sql”);
回归分析;
}
}
输出:

package tutorial.simple.route;
import java.util.ArrayList;
import java.util.HashMap;

import org.apache.camel.Handler;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;


public class MockSql {
private static final Logger log = Logger.getLogger("mockSql");

    public MockSql(){
        log.setLevel(Level.DEBUG);
        log.debug("constructed mock sql");

    }
    @Handler
    public ArrayList populate(){
    ArrayList <HashMap> ary = new ArrayList<HashMap>();
    HashMap<String, String> hm = new HashMap();
    HashMap<String, String> hm2 = new HashMap();
    hm.put("n1", "j1");
    hm2.put("n2", "j2");

    ary.add(hm);
    ary.add(hm2);

    log.debug("populated mock sql");
    return ary;
}


}
[pache.camel.spring.Main.Main()]主要支持信息Apache camel 2.12.0.redhat-610379正在启动 [pache.camel.spring.Main.Main() [pache.camel.spring.Main.Main() [pache.camel.spring.Main.Main() [pache.camel.spring.Main.Main()]DefaultTypeConverter信息加载了176个类型转换器 [pache.camel.spring.Main.Main()]已启用SpringCamelContext信息AllowUseOriginalMessage。如果不需要访问原始消息,则建议关闭此选项,因为它可能会提高性能。 [pache.camel.spring.Main.Main()]未使用SpringCamelContext信息流缓存。如果使用流,则建议启用流缓存。有关更多详细信息,请参阅 [pache.camel.spring.Main.Main()]SpringCamelContext信息路由:路由1已启动并从:端点使用[direct://start] [pache.camel.spring.Main.Main()。
[pache.camel.spring.Main.Main()]SpringCamelContext信息Apache camel 2.12.0.redhat-610379(CamelContext:camel)在0.324秒内启动

A
direct
端点只能从另一个路由触发,例如:

<route>
    <from uri="<other endpoint>"/>
    ...
    <to uri="direct:start"/>
</route>

...
因此,在您的情况下,路由从未被触发