我正在开发REST服务。我可以使用Apache CAMEL来支持XML和JSON格式吗?我对如何使用Apache CAMEL知之甚少。如果有人知道任何一个例子,你能指点我吗。
答案 0 :(得分:0)
您只需将Camel HTTP Endpoint与Camel JSON support一起使用即可。两种资源中的代码和配置示例都可以帮助您实现目标。
请记住,对于使用JSON的纯REST服务,您还有其他选项,例如RESTEasy,Jersey和Restlet。 Camel(和Spring Integration等)通过Enterprise Integration Patterns支持消息传递。当然,REST可能是其中的一部分,但请确保您只需要尽可能多地支持您的需求。
答案 1 :(得分:0)
cxf bean component将尝试整理对客户端请求的响应。简单的" REST路由"可能看起来像这样:
<camel:from ref="jettyEndpoint" />
<camel:to uri="cxfbean:yourRequestHandler?providers=#jsonJacksonProvider..." />
在引用为&#34; yourRequestHandler&#34;的bean中您可以在服务方法上使用标准JAX-WS注释。例如。
@POST
@Consumes("application/json")
@Produces("application/json")
public ServiceResponse aServiceMethod(ServiceResponse response) {
// Do whatever is required to gather the information for the response here...
// Then create response object, will be marshaled according to annotation
ServiceResponse response = new ServiceResponse();
return response;
}
我不确定您是否需要提供单独的服务方法来生成JSON和XML,或者如果您可以在一个和它中执行它。我们总是只生成一种格式,在这种情况下,cxfbean将自动编组为带注释的格式。您可能必须提供所需的提供商。例如。如果您对标准JSON提供程序不满意而非想使用Jackson,那么您可以通过在上面的cxfbean URI中提供自己的类似来覆盖默认提供程序。
请注意,如果在cxfbean步骤之后添加路由步骤,那么交换体将包含已以客户端请求的格式编组的响应对象。