Maybe, it's really a CXF problem?
Because, it seems to me that the Camel HTTP component just does its job as
expected...
I wrote a simple test and voila - google is there :)
It's failing of course, I was maily curious about the body content, that's
why the asserting with "".

public class FetchWebTest extends CamelTestSupport {

    @EndpointInject(uri = "mock:fetchWebpage")
    protected MockEndpoint resultEndpoint;

    @Produce(uri = "direct:start")
    protected ProducerTemplate template;

    @Test
    public void testDatFetch() throws InterruptedException {
        String expectedBody = "";

        resultEndpoint.expectedBodiesReceived(expectedBody);

        template.sendBodyAndHeader("", Exchange.HTTP_METHOD, "GET");

        resultEndpoint.assertIsSatisfied();
    }

    @Override
    protected RouteBuilder createRouteBuilder() {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:start").to("http://www.google.com
").to("mock:fetchWebpage");
            }
        };
    }
}



On Fri, Jan 4, 2013 at 1:23 PM, Martin Stiborský <[email protected]
> wrote:

> Hi,
> I have a simple case - CXF as producer and based on the HTTP request
> parameters, I need fetch some web page - with help of Camel HTTP component,
> I guess.
>
> For start, simple code:
>
> from("cxfrs:bean:jenkinsServer")
> .choice()
> .when(header(CxfConstants.OPERATION_NAME).isEqualTo("test"))
> .to("
> http://www.google.com?bridgeEndpoint=true&throwExceptionOnFailure=false";)
>
> I'd expect, that after I hit a "localhost:1234/test" in my browser, I'll
> see a google.com source code, wrong :( Actually, I've got an exception:
>
> org.apache.camel.InvalidPayloadException: No body available of type:
> java.io.InputStream but has value: [] of type:
> org.apache.cxf.message.MessageContentsList on: Message: []. Caused by: No
> type converter available to convert from type:
> org.apache.cxf.message.MessageContentsList to the required type:
> java.io.InputStream with value []. Exchange[Message: []]. Caused by:
> [org.apache.camel.NoTypeConversionAvailableException - No type converter
> available to convert from type: org.apache.cxf.message.MessageContentsList
> to the required type: java.io.InputStream with value []]
>
> Now, after so many tries and googling, I'm not sure why and where it's
> wrong...
>
> Is there a way how to make it work? Sure I can write my own bean to
> fetching data with HTTP requests, but I was thinking that Camel HTTP
> component could be capable of that.
>
> --
> S pozdravem / Best regards
> Martin Stiborský
>
> Jabber: [email protected]
> Twitter: http://www.twitter.com/stibi
>



-- 
S pozdravem / Best regards
Martin Stiborský

Jabber: [email protected]
Twitter: http://www.twitter.com/stibi

Reply via email to