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

Arquivos deste exercicio

Olá. poderiam me disponibilizar os arquivos e classe completa deste exercicio?

2 respostas

Como mencionei no outro tópico, Bruno, confira se nas aulas seguintes a classe já não está disponível! Mas em breve o instrutor dará um pulo aqui pra conferir.

solução!

Oi Bruno, segue a classe completa:

package br.com.caelum.camel;

import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.http4.HttpMethods;
import org.apache.camel.impl.DefaultCamelContext;
import org.mortbay.jetty.HttpSchemes;

public class RotaPedidos {

    public static void main(String[] args) throws Exception {

        CamelContext context = new DefaultCamelContext();
        context.addRoutes(new RouteBuilder() {

            @Override
            public void configure() throws Exception {

                from("file:pedidos?delay=5s&noop=true").
                    routeId("rota-pedidos").
                    multicast().
                        to("direct:soap").
                        to("direct:http");

                from("direct:http").
                    routeId("rota-http").
                    setProperty("pedidoId", xpath("/pedido/id/text()")).
                    setProperty("clienteId", xpath("/pedido/pagamento/email-titular/text()")).
                    split().
                        xpath("/pedido/itens/item").
                    filter().
                        xpath("/item/formato[text()='EBOOK']").
                    setProperty("ebookId", xpath("/item/livro/codigo/text()")).
                    marshal().xmljson().
                    //log("${id} - ${body}").
                    setHeader(Exchange.HTTP_METHOD, HttpMethods.GET).
                    setHeader(Exchange.HTTP_QUERY,simple("ebookId=${property.ebookId}&pedidoId=${property.pedidoId}&clienteId=${property.clienteId}")).
                to("http4://localhost:8080/webservices/ebook/item");

                from("direct:soap").
                    routeId("rota-soap").
                    to("xslt:pedido-para-soap.xslt").
                    log("${body}").
                    setHeader(Exchange.CONTENT_TYPE,constant("text/xml")).
                to("http4://localhost:8080/webservices/financeiro");
            }

        });

        context.start();
        Thread.sleep(20000);
        context.stop();
    }    
}

abs