0

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

字符串 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 的合适转换

我该如何解决?

4

1 回答 1

0

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

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

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

于 2013-01-24T08:03:26.447 回答