我需要从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;
}
}
答案 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服务的响应。如果您需要使用响应进行操作或进行一些路由和转换,那么您应该查看响应的类型,因此您应该使用适当的变换器。
希望这会有所帮助。