我有一個使用cxf和camel配置的restful webservice。我的配置XML是:Apache Camel:路由啓動控制
<jaxrs:server id="restContainer" address="/" staticSubresourceResolution="true"> <jaxrs:serviceBeans>
<ref bean="FooBar" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.apache.cxf.jaxrs.provider.JSONProvider">
<property name="dropRootElement" value="true" />
<property name="supportUnwrapped" value="true" />
</jaxrs:providers>
<camelcxf:rsServer id="rsServer" address="/" serviceClass="com.camel.example.FooBar" /> <camel:camelContext id="camelContext-1">
<camel:route>
<camel:from uri="cxfrs:bean:rsServer" />
<camel:to uri="http://localhost:8080/Google/rest/search" />
</camel:route>
</camel:camelContext>
現在我有暴露爲服務,是這樣的FooBar的類:
@Service("Demo") @Path("/foo/bar") public class FooBar{
@POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public PoiDetailsResponse poiGetDetails(
PoiDetailsRequest json)
{
System.out.println(json.getUname());
System.out.println(json.getDeviceid());
//do some validation and some business logic
//return accordingly;
}
我擔心的是,當我打我的服務器.. camelContext立即接管並且我的課程中存在的方法完全沒有觸及......事實上,從我的「到」部分路由發出的任何響應都會發回給客戶端..現在,有一種方法是爲每個業務邏輯添加多個處理器。但我真的想先讓我的方法執行,然後開始路由......我該怎麼做?另外我可以用我想要的任何參數來打我的服務器,即使它們錯了(意味着PoiDetailsRequest的變量的錯誤數據類型),並獲得任何響應參數(這些參數不是PoiDetailsResponse的一部分),但這並不是一件好事。建議的東西..
如果您沒有很快得到答案,我會強烈建議在這個問題上發佈一個鏈接到駱駝郵件列表。開發人員通常會很快做出迴應。 http://camel.apache.org/mailing-lists.html – JustinKSU 2012-04-23 14:31:08
是的,克勞斯易卜生可能會幫助你,他是一個人的軍隊 – 2012-04-23 14:46:17