我正在尝试对一块CXF soap服务代码进行单元测试。代码执行没有任何问题。但它每次都返回null,无论我在身体中设置什么作为响应。
public class MyRouteTest extends CamelTestSupport
{
private int port = AvailablePortFinder.getNextAvailable();
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
JaxbDataFormat jaxb = new JaxbDataFormat();
jaxb.setContextPath("com.example");
from("cxf:http://localhost:"+port+"/test/OpenIssue?serviceClass="+OpenIssue.class.getCanonicalName())
.convertBodyTo(OpenIssueRequest.class)
.setBody(constant("OK"));
}
};
}
@Test
public void testMySoapRoute() {
OpenIssueRequest request = new OpenIssueRequest();
request.setXXX(270);
request.setYYY("A");
request.setZZZ("ABCD");
String out = template.requestBody("cxf:http://localhost:"+port+"/test/OpenIssue?serviceClass="+OpenIssue.class.getCanonicalName(),request,String.class);
assertNotNull(out);
}
}
此代码应该返回“OK”作为响应但是变为null
我使用的是camel-version 2.15.0.redhat-630329。我将它更新为2.17.0.redhat-630329的camel-version。它自动解决了。