Apache Camel http в http маршрутизацию (возможно ли это?) - PullRequest
14 голосов
/ 13 апреля 2011

Я начинаю сейчас с верблюда. Я видел компонент http4 для клиентов http и компонент jetty для серверов http.

Я видел несколько примеров, использующих один или другой. Я хотел бы знать, возможно ли объединить их вместе.

Пример

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

Это сделает верблюда простым маршрутизатором / прокси на основе http. Веб-браузеры будут нажимать на URL верблюда и вместо этого получать Google. (Google - просто пример, у меня есть реальная служба на основе POST, которую я хочу использовать)

Возможен ли этот маршрут? Должен ли я исследовать Camel или мне нужна другая программная среда для этого? В будущем мне также нужно будет добавить преобразования / фильтры между ними.

Я попробовал и получил исключение nullpointer

[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

1 Ответ

35 голосов
/ 13 апреля 2011

Вам нужно соединить конечную точку.

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