Apache Camel Web服务,支持XML和JSON

时间:2013-12-11 04:44:30

标签: apache-camel

我正在开发REST服务。我可以使用Apache CAMEL来支持XML和JSON格式吗?我对如何使用Apache CAMEL知之甚少。如果有人知道任何一个例子,你能指点我吗。

2 个答案:

答案 0 :(得分:0)

您只需将Camel HTTP Endpoint与Camel JSON support一起使用即可。两种资源中的代码和配置示例都可以帮助您实现目标。

请记住,对于使用JSON的纯REST服务,您还有其他选项,例如RESTEasyJerseyRestlet。 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步骤之后添加路由步骤,那么交换体将包含已以客户端请求的格式编组的响应对象。