I am trying to write a test that needs to contact a RESTful service and get back a reply in JSON. I wanted a lightweight HTTP client, so I opted to use the
Here is what my prep processor does: exchange.getIn().setHeader(Exchange.ACCEPT_CONTENT_TYPE, "application/json"); exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "text/plain"); exchange.getIn().setHeader(Exchange.HTTP_METHOD, POST); exchange.getIn().setBody("This is my test"); Here is the route... <route id="test-contact"> <from uri="seda:input"/> <process ref="prepProcessor"/> <to uri="http4://localhost:7000/cxf/rest/contact"/> <unmarshal ref="jsonResponse"/> <log message="${body}" loggingLevel="INFO"/> <to uri="mock:end"/> </route> Here's the part of the log when the test starts to show I have a server set up for the HTTP4 client to contact (it maps the "/contact" part of the URI in a service bean): INFO: Setting the server's publish address to be http://localhost:7000/cxf/rest INFO 20-Oct-2017 08:54:03.382, [main], Server - jetty-9.2.21.v20170120 WARN 20-Oct-2017 08:54:03.410, [main], AbstractHandler - No Server set for org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine$1@2ca6546f INFO 20-Oct-2017 08:54:03.415, [main], ServerConnector - Started ServerConnector@73877e19{HTTP/1.1}{localhost:7000} INFO 20-Oct-2017 08:54:03.415, [main], Server - Started @10647ms Here is the log output from the moment the prepProcessor bean is invoked in the test: DEBUG 20-Oct-2017 08:54:04.732, [Camel (test-context) thread #2 - seda://input], PrepProcessor - {breadcrumbId=ID-arda-32947-1508514836918-0-6, CamelAcceptContentType=application/json, CamelHttpMethod=POST, Content-Type=text/plain} WARN 20-Oct-2017 08:54:04.980, [qtp632841653-70], HttpParser - badMessage: 400 No Host for HttpChannelOverHttp@47cfe850{r=0,c=false,a=IDLE,uri=/cxf/rest/contact} Can anyone spot what I'm doing wrong here? I followed the instructions off the Camel-HTTP4 web page. It seemed pretty straight-forward, so I'm not understanding why it can't find a host. Thanks! -Allen