首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用xquery过滤jms消息,使用apache camel通配符

使用xquery过滤jms消息,使用apache camel通配符
EN

Stack Overflow用户
提问于 2016-12-08 20:39:42
回答 1查看 179关注 0票数 1

使用apache和通配符在JMS消息上使用xquery有问题。

我的代码从jms队列中读取并尝试过滤消息。

代码语言:javascript
运行
复制
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.cdi.ContextName;
import org.apache.camel.component.jms.JmsComponent;
import org.wildfly.extension.camel.CamelAware;

import javax.annotation.Resource;
import javax.ejb.Startup;
import javax.enterprise.context.ApplicationScoped;
import javax.jms.ConnectionFactory;


@Startup
@CamelAware
@ApplicationScoped
@ContextName("test")
class MyRouteBuilder extends RouteBuilder {


    @Resource(mappedName = "java:jboss/DefaultJMSConnectionFactory")
    private ConnectionFactory connectionFactory;

    @Override
    public void configure() throws Exception {

        getContext().addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));


        from("jms:queue:test1").
                routeId("test").
                to("log:jms?showAll=true").
                filter().xquery("fn:contains(//person/name/text(),'james')").
                to("file://Users/asse/Outbound");

当我使用消息<person><name>james</name><person>运行代码时,会得到以下错误:

消息历史- RouteId ProcessorId处理器 经过(ms)测试jms://queue: test 1 测试log:jms?showAll=true 测试filter[xquery{XQuery[net.sf.saxon.query.XQueryExpression@3af367ad]}] Stacktraceorg.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)的.process(InstrumentationProcessor.java:77)

我不明白为什么!有人能帮我解决这个问题吗?

EN

Stack Overflow用户

回答已采纳

发布于 2016-12-23 17:39:13

在独立骆驼2.18.1中遇到了同样的问题。

我相信这是camel中的一个bug,它是由升级到SaxonVersion9.7.0引起的,它不再允许将空值放入查询上下文中-- bug在org.apache.camel.component.xquery.XQueryBuilder.类中它尝试将所有Exchange和属性添加到方法org.apache.camel.component.xquery.XQueryBuilder#configureQuery.中的查询执行上下文中如果任何标头或属性的值为空(如果使用JMS消息,则会引发异常)。

我能够复制这个问题,这似乎不是camel 2.18中xquery的唯一问题。

我记录了一个jira问题https://issues.apache.org/jira/browse/CAMEL-10653

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41048421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档