来自外部Web服务的camel返回值

时间:2015-04-12 08:28:31

标签: apache-camel

我需要从camel调用在WildFly上运行的外部Web服务。 我设法使用以下路线调用它:

public class CamelRoute extends RouteBuilder {


final String cxfUri =
        "cxf:http://localhost:8080/DemoWS/HelloWorld?" +
        "serviceClass=" + HelloWorld.class.getName(); 
@Override
public void configure() throws Exception {
    from("direct:start")
    .id("wsClient")
    .log("${body}")
    .to(cxfUri + "&defaultOperationName=greet");


}
}

我的问题是如何从Web服务调用中获取返回值?使用的方法返回一个String:

@WebService
public class HelloWorld implements Hello{

    @Override
    public String greet(String s) {
        // TODO Auto-generated method stub
        return "Hello "+s;
    }

}

1 个答案:

答案 0 :(得分:0)

如果Wild Fly中的服务返回值,那么要查看值,您可以执行以下操作

公共类CamelRoute扩展了RouteBuilder {

final String cxfUri =
    "cxf:http://localhost:8080/DemoWS/HelloWorld?" +
    "serviceClass=" + HelloWorld.class.getName(); 
@Override
public void configure() throws Exception {
    from("direct:start")
    .id("wsClient")
    .log("${body}")
    .to(cxfUri + "&defaultOperationName=greet").log("${body}");

//beyond this to endpoint you can as many number of componenets to manipulate the response data. 
}
}

第二个日志将记录您要返回的Web服务的响应。如果您需要使用响应进行操作或进行一些路由和转换,那么您应该查看响应的类型,因此您应该使用适当的变换器。

希望这会有所帮助。