我有使用CXF和骆驼构成的宁静web服务。 我的配置XML是:
<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立即接管,并出现在我的类中的方法完全不触及.. INFACT任何响应来自路线的我“到”部分是发送回客户端..现在一个方式是添加多个处理器为每个businesss逻辑。 但我真的希望有我的方法执行,然后再开始路线..我怎么能做到这一点? 另外我打我的,我想任何参数的服务器,即使他们是错的(是指PoiDetailsRequest变量错误的数据类型),并得到任何响应参数(这不是PoiDetailsResponse的一部分),这是ofcourse不是一件好事..请建议东西..