CamelJdbcColumnNames标头错过了

时间:2015-04-24 06:37:23

标签: spring apache-camel

我尝试使用camel的jdbc组件。我在这里找到了文档:http://camel.apache.org/jdbc.html
它的效果很好,因为结果可以从数据库中获得,但是在文档中提到的名为CamelJdbcColumnNames的排队答案中没有标题。
我所能看到的是CamelJdbcRowCount。我的骆驼版本是2.15.1。

我是否必须打开一个开关来启用它?

以下是我的spring-config.xml的摘录:

<bean id="ds" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
    <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@myhost:1521:mydbsid"/>
    <property name="username" value="myuser"/>
    <property name="password" value="mypass"/>
</bean>

<route id="route db">
    <from uri="file://data/inbox" />
    <to uri="jdbc:ds" />
    <to uri="jms:sqlret" />
</route>

修改
为了排除jms,我添加了Processor。有了这个我想调试邮件头。这是我的spring-config.xml的新摘录:

<bean id="jdbccheck" class="mypackage.JdbcCheck"></bean>
<route id="route db">
    <from uri="file://data/inbox" />
    <to uri="jdbc:ds" />
    <process ref="jdbccheck"/>
    <to uri="jms:sqlret" />
</route>

处理器代码:

public class JdbcCheck implements Processor {

    private static final Logger LOG = Logger.getLogger(JdbcCheck.class.getName());

    @Override
    public void process(Exchange exchange) throws Exception {
        LOG.info(exchange.getIn().getHeaders().toString());
    }
}

日志消息:

{breadcrumbId=ID-chris-HP-50597-1429955241877-0-1, CamelFileAbsolute=false, CamelFileAbsolutePath=C:\daten\chris\source\netbeans\GbLuna\data\inbox2\in.sql, CamelFileContentType=null, CamelFileLastModified=1429953640254, CamelFileLength=36, CamelFileName=in.sql, CamelFileNameConsumed=in.sql, CamelFileNameOnly=in.sql, CamelFileParent=data\inbox2, CamelFilePath=data\inbox2\in.sql, CamelFileRelativePath=in.sql, CamelJdbcRowCount=837} 

最后一个变量/值对是CamelJdbcRowCount=837,在我看来它以某种方式工作。但是为了进一步处理,我想处理列名。那么:如何获得CamelJdbcColumnNames

1 个答案:

答案 0 :(得分:1)

现在好了,因为你将数据发送到JMS端点。 JMS规范仅支持JMS头/属性的许多数据类型。这通常是字符串,数字和原始类型。

您可以在Camel JMS文档页面以及JMS规范/ javadoc中阅读有关此内容的更多信息。

列名标题存储为Java集合类型的标头,JMS不支持。

如果启用Camel跟踪器,您应该能够在将消息路由到JMS端点之前看到标头:http://camel.apache.org/tracer