【问题标题】:Camel service endpoints. requestBody cast to string error骆驼服务端点。 requestBody 转换为字符串错误
【发布时间】:2013-01-23 16:08:36
【问题描述】:

我已经设置了一个简单的 HTTP 服务,它带有一个端点,它提供 XML 响应。我正在针对该服务运行 JUnit 测试。这是下面代码的摘录。 getMessageBody 使用缓冲读取器将文件转换为字符串。

String src = getMessageBody(xmlname);

        MockEndpoint mock = this.context.getEndpoint("mock:resultsCheck",MockEndpoint.class);
        mock.expectedMessageCount(2);

        LOG.info(".. get response object");
        Object responseBody1 = this.template.requestBody("cxf://bean:Port",src);
        String responseBody2 = this.template.requestBody("cxf://bean:Port",src, String.class);

问题在于:

对象 responseBody1 = this.template.requestBody("cxf://bean:Port",src);

工作正常并返回一个填充对象。

此行返回 null,我不知道为什么:

String responseBody2 = this.template.requestBody("cxf://bean:Port",src, String.class);

有什么想法吗?

-- 编辑--

我进一步调查了一下,这似乎是类型转换的问题。找不到从 org.apache.cxf.bus.spring.SpringBus 类型到 org.apache.camel.Component 的合适转换

我该如何解决这个问题?

【问题讨论】:

    标签: xml service request apache-camel endpoint


    【解决方案1】:

    在第二次调用时,CXF Web 服务是否返回非空响应?

    您可以尝试注释掉第一个电话,所以您只做第二个电话,看看您是否得到回应。

    第一次调用返回的对象是什么类型。如果你执行它的 toString 方法,它会返回 null 吗?

    【讨论】:

    • 网络服务返回相同的对象。那么实际的演员阵容可能有问题吗?..尝试注释掉第一个电话,但仍然有一个空响应。返回的对象类型与我们在配置中设置的代理类匹配
    • 对 Object 使用 toString 方法只返回对象类型名称
    猜你喜欢
    • 2019-10-30
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    相关资源
    最近更新 更多