Apache Camel JSON regroupement pour POJO Java Bean

Je pense que j'ai une simple question, mais n'arrive pas à le comprendre.

Je suis en invoquant un POJO avec une classe créée à partir de unmarshalling JSON en tant que paramètre de la méthode. La question est, comment puis-je le maréchal le retour de la méthode de retour JSON?

Mon itinéraire est ci-dessous;

from("direct:start")
 .choice()
  .when(header("methodname").isEqualTo("listCases"))
   .unmarshal().json(JsonLibrary.Jackson, UserDetails.class)
   .to("bean:com.xxx.BeanA")
  .when(header("methodName").isEqualTo("listPersons"))
   .unmarshal().json(JsonLibrary.Jackson, CaseDetails.class)
   .to("bean:com.xxx.BeanB");

...et je suis en invoquant l'itinéraire ci-dessous;

ProducerTemplate template = camelContext.createProducerTemplate();
template.setDefaultEndpoint(camelContext.getEndpoint("direct:start"));
InvocationResult result = (InvocationResult)template.requestBodyAndHeader(payload, "methodName", methodName);

Charge utile est JSON, et la methodName est soit listCases ou listPersons dans cet exemple.

Mon InvocationResult classe est générique et contient une Chaîne code_retour attribut ainsi que d'une référence d'objet à l'objet que je tiens à être converti en JSON. Cet objet sera différent selon que listCases ou listPersons est exécutée.

Merci,

Bic

Vous utilisez déjà unmarshall() avec Jackson. Avez-vous un problème avec l'aide de marshall() de la même façon? Tant que la réponse peut être convoquée par Jackson, il devrait être assez simple?
Le unmarshalling fonctionne bien - ainsi, dans l'exemple ci-dessus, je vois ma charge utile JSON est converti à un UserDetails classe. Le problème est que je ne sais pas comment le maréchal de l'un des champs de la InvocationResult de la classe de l'Objet qui doit être converti en JSON.
Donc, étant donné que je peux unmarshall JSON d'un POJO de passer d'une fève, je suppose que ma question se résume à la façon dont je fais l'inverse de maréchal de l'objet renvoyé par la fève de retour JSON?

OriginalL'auteur bicster | 2016-11-23