[ 
https://issues.apache.org/jira/browse/CAMEL-22662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18035901#comment-18035901
 ] 

Claus Ibsen commented on CAMEL-22662:
-------------------------------------

Thanks I can run that sample code and see that CXF needs a http transport like 
jetty or undertow

> 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: Task
>          Components: camel-cxf
>            Reporter: Cameron Fitzwater
>            Priority: Trivial
>             Fix For: 4.17.0
>
>         Attachments: cxf-example.zip
>
>
> 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)?
> This would prevent confusion for users who expect HTTP endpoints to work 
> out-of-the-box when using {{cxf://http://...}} URIs.
> 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)

Reply via email to