2011-06-09 85 views
0

我有cxf web服務,我想用駱駝來調用它。camel-cxf問題

有人可以幫助我。

我的來源是:

<camel:camelContext xmlns="http://camel.apache.org/schema/spring"> 
    <camel:package>com.aliti.integeration</camel:package> 

    <route> 
     <from uri="cxf:bean:helloService?defaultOperationName=sayHello"/> 
     <from uri="cxf:bean:helloService?defaultOperationName=sayHi"/> 

     <log message=">>>> ${body}"/> 

    </route> 

</camel:camelContext> 

回答

2

像這樣的事情會暴露在localhost服務:8080 /測試,並通過您的路線

from(cxf://http://localhost:8080/test?serviceClass=com.aliti.integeration.HelloService) 
.choice() 
    .when(header(CxfConstants.OPERATION_NAME).isEqualTo("sayHello")) 
     setBody(constant("hello") 
    .when(header(CxfConstants.OPERATION_NAME).isEqualTo("sayHi")) 
     setBody(constant("hi"); 

... 
public interface HelloService { 
    String sayHello(); 
    String sayHi(); 
} 

發送請求有關更多信息,請查看camel-cxf頁面,cxf unit testsblog post對於CXFRS示例...

+0

感謝您的回覆; – Aliti 2011-06-11 09:53:04

+0

我嘗試過,但我什麼都沒有。 – Aliti 2011-06-11 09:54:03

+0

我可以將我的源代碼發送給您嗎? – Aliti 2011-06-11 09:57:09

0

只需在代碼中嘗試駱駝;那裏你可以選擇你的方法。但在DSL模式下我不知道。

像boday說:

.choice() 
    .when(header(CxfConstants.OPERATION_NAME).isEqualTo("sayHello")) 
     setBody(constant("hello") 
    .when(header(CxfConstants.OPERATION_NAME).isEqualTo("sayHi")) 
     setBody(constant("hi");