2013-12-11 3 views
0

Я разрабатываю службу REST. Могу ли я использовать Apache CAMEL для поддержки формата XML и JSON? У меня недостаточно знаний о том, как использовать Apache CAMEL. Если кто-нибудь знает какой-нибудь пример, можете ли вы указать мне там.Веб-сервис Apache Camel с поддержкой XML и JSON

ответ

0

Вам нужно всего лишь использовать Camel HTTP Endpoint с Camel's JSON support. Образцы кода и конфигурации в обоих ресурсах должны помочь вам.

Имейте в виду, что у вас есть другие возможности, такие как RESTEasy, Jersey и Restlet для чистых услуг REST с JSON. Camel (и Spring Integration и т. Д.) Поддерживают обмен сообщениями через Enterprise Integration Patterns. REST может быть частью этого, конечно, но убедитесь, что вы делаете столько, сколько должны, чтобы поддерживать ваши потребности.

+0

Я не мог хорошо понять этот пример. Можете ли вы указать мне где-нибудь, где они используют CAMEL для поддержки разных форматов данных. – Manoj

+0

Попробуйте это [учебник] (http://jaxenter.com/tutorial-integrating-with-apache-camel-48211.html). – Vidya

0

cxf bean component попытается маршалировать ответ на все, что было запрошено клиентом. Простой «REST маршрут» может выглядеть следующим образом:

<camel:from ref="jettyEndpoint" /> 
<camel:to uri="cxfbean:yourRequestHandler?providers=#jsonJacksonProvider..." /> 

В бобе ссылочного как «yourRequestHandler» вы можете использовать стандартные аннотации 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, тогда вы можете переопределить поставщика по умолчанию, предоставив свой собственный, как в URI cxfbean выше.

Остерегайтесь, если вы добавите шаги маршрута после шага cxfbean, тогда тело обмена будет содержать ваш объект ответа, уже маршалированный в запрошенном клиенте формате.

Смежные вопросы