Cameron Fitzwater created CAMEL-22662:
-----------------------------------------
Summary: docs: camel-cxf - add info on http transport dependency
Key: CAMEL-22662
URL: https://issues.apache.org/jira/browse/CAMEL-22662
Project: Camel
Issue Type: Bug
Components: camel-cxf
Reporter: Cameron Fitzwater
Would it be possible to make mention in the CXF documentation that HTTP
transport dependencies are required when exposing SOAP services via HTTP
endpoints (this took me a bit to figure out/understand)?
Maybe even going as far as showing an example with the mention of needing the
dependency, like:
{code:java}
- from:
uri: "cxf://http://0.0.0.0:8080/services/MyService"
parameters:
wsdlURL: "file:service.wsdl"
serviceName: "{http://example.com}MyService"
portName: "{http://example.com}MyPort"
dataFormat: "PAYLOAD"
{code}
As of now, a dependency for transport is not auto-injected, which implies that
you must include a dependency for the transport to work:
e.g.,
camel.jbang.dependencies=org.apache.cxf:cxf-rt-transports-http-jetty:4.1.3
or
camel.jbang.dependencies=org.apache.cxf:cxf-rt-transports-http-undertow:4.1.3
Otherwise you will get the following error:
{code:java}
2025-11-05 10:50:55.950 INFO 253203 --- [ main]
e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.15.0 (soap) shutdown
in 26ms (uptime:1s)
org.apache.cxf.service.factory.ServiceConstructionException
at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:193)
at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:210)
at
org.apache.camel.component.cxf.jaxws.CxfConsumer.createServer(CxfConsumer.java:80)
at
org.apache.camel.component.cxf.jaxws.CxfConsumer.doStart(CxfConsumer.java:112)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
at
org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3508)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRouteConsumers(InternalRouteStartupManager.java:430)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.doStartRouteConsumers(InternalRouteStartupManager.java:346)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:222)
at
org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:132)
at
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3114)
at
org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2726)
at
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2681)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2268)
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
at org.apache.camel.main.KameletMain.doStart(KameletMain.java:401)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1657)
at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:1007)
at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:370)
at
org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:71)
at
org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:37)
at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at
picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
at
picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
at picocli.CommandLine.execute(CommandLine.java:2174)
at
org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:205)
at
org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:72)
at main.CamelJBang.main(CamelJBang.java:36)
Caused by: java.io.IOException: Cannot find any registered
HttpDestinationFactory from the Bus.
at
org.apache.cxf.transport.http.HTTPTransportFactory.getDestination(HTTPTransportFactory.java:286)
at
org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:135)
at
org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:86)
at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:65)
at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:182)
... 34 more {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)