As far as I recall, a corresponding CXF filter is a blocking one and returns a JAX-RS Response. May be the CamelCXF RS code needs to be tweaked a bit to check if JAX-RS Response is already available before continuing with the route flow...
Cheers, Sergey On Tue, Nov 20, 2018 at 5:20 PM #S-SmixDev <smix...@dzbank.de> wrote: > Hi Zoran, > > yeah, I suspected that might be the way it's supposed to work, but the > problem here of course is that I don't actually have a ResourceImpl of my > real service, only an interface, and therefore performInvocation doesn't > work for me unless I write a Dummy implementation, too. > > Cheers, > Jens > > [image: Inactive hide details for "Zoran Regvart" ---20.11.2018 > 17:28:53---Hi Jens, from the little exploration I did I think you need]"Zoran > Regvart" ---20.11.2018 17:28:53---Hi Jens, from the little exploration I > did I think you need to set > > Von: "Zoran Regvart" <zo...@regvart.com> > An: users@camel.apache.org, > Datum: 20.11.2018 17:28 > Betreff: Re: Camel CXFRS and Swagger/OpenAPI Feature > ------------------------------ > > > Hi Jens, > from the little exploration I did I think you need to set > `performInvocation` to `true`: the way OpenAPI support in CXF works is > by registering a resource that will generate the OpenAPI > specification, and that JAX-RS resource class[1] has an `getOpenApi` > method. > > So your routes need to look something like this: > > from("cxfrs:// > http://localhost:8080/api?features=#openApi&resourceClasses=...&performInvocation=true > ") > .toD("direct:${header.operationName}"); > > from("direct:getOpenApi").log("Fetching OpenAPI specification"); > > The `log` here is just in place of a dummy processor so that the route > has a `from` and a `to`. > > The way I came to think of it is that the resource classes give the > REST API shape, and the implementation is provided by Camel route, > which is kinda difficult to grasp since the most natural thing would > be to write the implementation within the resource method. > > zoran > > [1] > https://github.com/swagger-api/swagger-core/blob/master/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/resources/OpenApiResource.java#L28 > On Mon, Nov 19, 2018 at 2:03 PM #S-SmixDev <smix...@dzbank.de> wrote: > > > > > > Hi Camel Riders, > > > > I'm trying to integrate a Camel-CXFRS endpoint with Swagger UI using the > > Swagger/OpenAPI Feature. > > > > This works fine with a "pure" CXF endpoint, no Camel involved. > > > > When using Camel-CXFRS, however, I can't make it work properly without > > extra implementation work in the Camel route. > > > > Using runAsFilter=false a call to > > http://localhost:8080/services/myCamelService/openapi.json > > results in a call of the Camel route with an operation "getOpenApi" > > > > http://localhost:8080/services/myCamelServive/api-docs?url=openapi.json > > results in call of the Camel route with an operation "getResource" > > > > Using runAsFilter=true the situation improves marginally: > > http://localhost:8080/services/myCamelService/openapi.json > > still results in a call of the Camel route with an operation "getOpenApi" > > > > http://localhost:8080/services/myCamelServive/api-docs?url=openapi.json > > at least now shows the Swagger UI page frame but still fails to load the > > actual service description since it again calls the Camel route with the > > "getOpenApi" operation. > > > > As far as I can see, calling the API description endpoints should not > > involve the Camel route at all, and this "getOpenApi" call should instead > > happen on the internal service resource. > > > > Has anyone successfully set this up just using the CXF feature out of the > > box? Is this even possible? > > > > Cheers, > > Jens > > ___________________________________________________________________ > > > > DZ BANK AG > > Deutsche Zentral-Genossenschaftsbank, Frankfurt am Main > > Platz der Republik, 60325 Frankfurt am Main > > Deutschland/Germany > > > > https://www.dzbank.de > > mailto:m...@dzbank.de <m...@dzbank.de>, T +49 69 7447 01, F +49 69 7447 > 1685 > > > > https://twitter.com/dzbank > > > > Vorstand/Board of Directors: Wolfgang Kirsch (Vorsitzender/Chief > Executive Officer), > > Uwe Berghaus, Dr. Christian Brauckmann, Ulrike Brouzi, Wolfgang Köhler, > > Dr. Cornelius Riese, Michael Speth, Thomas Ullrich > > > > Generalbevollmächtigter/General Executive Manager: Uwe Fröhlich > > > > Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Henning > Deneke-Jöhrens > > Sitz/Registered Office: Stadt Frankfurt am Main, Amtsgericht Frankfurt > am Main > > Handelsregister/Register of Companies: HRB 45651. > > > > ___________________________________________________________________ > > > > Die mit dieser E-Mail-Kommunikation erhobenen personenbezogenen Daten > > werden ausschließlich zu diesem Zweck bzw. zur Bearbeitung Ihres > Anliegens weiterverarbeitet. > > Weitere Informationen zum Datenschutz finden Sie unter > https://www.dzbank.de/datenschutzhinweise > > > > The personal data collected by this e-mail communication > > are processed exclusively for this purpose or to process your request. > > Further information on data protection can be found at > https://www.dzbank.com/dataprotection > > > > -- > Zoran Regvart > > *DZ BANK AG* > Deutsche Zentral-Genossenschaftsbank, Frankfurt am Main > Platz der Republik, 60325 Frankfurt am Main > Deutschland/Germany > > https://www.dzbank.de > mailto:m...@dzbank.de <m...@dzbank.de>, T +49 69 7447 01, F +49 69 7447 > 1685 > > https://twitter.com/dzbank <https://www.twitter.com/dzbank> > > Vorstand/Board of Directors: Wolfgang Kirsch (Vorsitzender/Chief Executive > Officer), > Uwe Berghaus, Dr. Christian Brauckmann, Ulrike Brouzi, Wolfgang Köhler, > Dr. Cornelius Riese, Michael Speth, Thomas Ullrich > > Generalbevollmächtigter/General Executive Manager: Uwe Fröhlich > > Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Henning > Deneke-Jöhrens > Sitz/Registered Office: Stadt Frankfurt am Main, Amtsgericht Frankfurt am > Main > Handelsregister/Register of Companies: HRB 45651. > > ___________________________________________________________________ > > Die mit dieser E-Mail-Kommunikation erhobenen personenbezogenen Daten > werden ausschließlich zu diesem Zweck bzw. zur Bearbeitung Ihres Anliegens > weiterverarbeitet. > Weitere Informationen zum Datenschutz finden Sie unter > https://www.dzbank.de/datenschutzhinweise > > The personal data collected by this e-mail communication > are processed exclusively for this purpose or to process your request. > Further information on data protection can be found at > https://www.dzbank.com/dataprotection >