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