Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
504 views
in Technique[技术] by (71.8m points)

java - Apache Camel http to http routing (Is it possible?)

I am starting now with Camel. I have seen the http4 component for http clients and the jetty component for http servers.

I have seen several examples that use one or the other. I would like to know if it is possible to combine them together.

Example

from("jetty:http://0.0.0.0:8080/myapp/myservice")
.to("http4://www.google.com");

This would make camel a simple http based router/proxy. Web browsers would hit the camel URL and instead get google. (Google is just an example, I have a real POST based service that I want to use)

Is this route possible? Should I research Camel or do I need a different software framework for this? In the future I would also need to add transformations/filters in between.

I have tried it and got a nullpointer exception

[qtp757856402-14] SendProcessor       DEBUG >>>> Endpoint[http4://www.google.com] Exchange[Message: [Body is instance of java.io.InputStream]]
[qtp757856402-14] DefaultErrorHandler DEBUG Failed delivery for exchangeId: ID-IT12-53265-1302683969823-0-1. On delivery attempt: 0 caught: java.lang.NullPointerException
[qtp757856402-14] DefaultErrorHandler ERROR Failed delivery for exchangeId: ID-IT12-53265-1302683969823-0-1. Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException
java.lang.NullPointerException
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You need to bridge the endpoint.

from("jetty:http://0.0.0.0:8080/myapp/myservice")
.to("http4://www.google.com?bridgeEndpoint=true&throwExceptionOnFailure=false");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...