Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

FROM - Componente para buscar XML/JSON através de um MAPPING

Boa Tarde, a todos,

Tenho uma dúvida, que acredito que não foi passado no curso, não percebi ou possivelmente pediram pra olhar na documentação,

Mas gostaria de saber como eu poderia fazer uma ROTA sem ser com o componente "from:file", pois eu gostaria de buscar o objeto em "XML" ou "JSON" de um método do meu projeto, exemplo:

@RequestMapping("/carros")
public String retornaXML(){
    //codigo, etc...
    return xml;
}

[OBS]: Desculpe a simplicidade

Como faço para buscar esse XML pelo o "from" do CAMEL, através desse "Mapping" ?

  • Poderiam criar esse "from" para essa situação, só para que eu tenha uma base do que está acontecendo ? Para que eu possa pesquisar sobre.

[OBS2 ]: Eu vi na documentação que existe o componente "spring-ws", mas gostaria de algo mais genérico, se caso fosse um:

SERVLET -> @WebServlet(urlPatterns="/carros") ?

Desde já agradeço pela a ajuda.

5 respostas
solução!

Oi Frank,

Nesse caso vc poderia usar um ProducerTemplate. Vc mesmo chama aquele método para depois colocar a mensagem na rota através do ProducerTemplate, algo assim:

CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
            public void configure() {
                from("direct:inicioRota").
        //outras chamadas da rota
        to("file://teste");
            }
 });
ProducerTemplate template = context.createProducerTemplate();
template.sendBody("direct:inicioRota", seuObjetoQueVemDaqueleMetodo);

No entanto, se o seu objetivo é serializar um objeto para XML, seria melhor usar XStream ou JAXB que façam esse trabalho muito bem e mais simples (o Camel vai muito alem da serialização).

abs

Obrigado pela resposta NICO, mas não teria como o "from" se referenciar diretamente com esse mapping ?

Oi Frank,

o que não está claro para mim, quando deve ser chamado esse método que vc mencionou?

abs, Nico

Olá Nico, acredito ter entendido sua dúvida, e provavelmente falta de atenção minha mesmo, porque "Qual o motivo de eu colocar no 'from' o XML através de um MAPPING, se eu posso instanciar essa classe, já que está no meu localhost", após você fazer esse exemplo acima, eu conseguir ver com mais clareza,

Obrigado Nico, e a todos da Alura, por mais essa ajuda.

Blz Frank, estamos juntos!

abs e bons estudos aqui, Nico