Try this it's work for me.
<restConfiguration component="servlet" contextPath="/apiisp001" bindingMode="json" scheme="https" port="8443" apiContextPath="/api-doc" apiContextListing="false" enableCORS="true"> <!-- Add apiContextpath to give the possibility to list all service on apiisp001 Context with Camel Swagger with that request: https://localhost:8443/apiisp001/api-doc --> <!-- Add this line to create a independant servlet prevent Conflict with a previous declare in other CamelContext --> <endpointProperty key="servletName" value="apiisp001CamelServlet" /> <dataFormatProperty key="prettyPrint" value="true" /> <apiProperty key="base.path" value="/apiisp001" /> <apiProperty key="api.description" value="APIISP001 - Test API" /> <apiProperty key="api.title" value="APIISP001" /> <apiProperty key="api.version" value="1.0.0" /> <apiProperty key="api.contact.name" value="Gerald Kallas"/> <apiProperty key="api.contact.email" value="catsh...@mailbox.org"/> <apiProperty key="api.termsOfService" value="(C) xxxxxxxxxxxx 2020"/> </restConfiguration> <!-- Add this little URI to test connectivity of you rest API with that request: https://localhost:8443/apiisp001/echo/ping --> <rest path="/echo" consumes="text/html" produces="text/html"> <description>apiisp001 - Echo rest service</description> <get uri="ping"> <description>APIISP001 - Connectivity test </description> <route id="rte.APIISP001.rest.echo"> <transform> <constant>/APIISP001/echo PONG.</constant> </transform> </route> </get> </rest> Daniel Langevin Direction de l’assistance et des technologies Direction des ressources informationnelles Société d’habitation du Québec Édifice Marie-Guyart 1054, rue Louis-Alexandre-Taschereau Aile Jacques-Parizeau, 1er étage Québec (Québec) G1R 5E7 Téléphone : 418 643-4035, poste 1191 Sans frais : 1 800 463-4315 >>> De : Gerald Kallas <catsh...@mailbox.org> À : <users@camel.apache.org>, Daniel Langevin <daniel.lange...@shq.gouv.qc.ca> Date : 2020-08-18 03:33 Objet : Re: Rép. : Camel REST DSL with servlet - API URL? Thanks for the hint. But it doesn't work either. I modified my Blueprint as following <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <camelContext id="isp.api.APIISP001" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" useBreadcrumb="true"> <!--********************************************************************************--> <!-- REST API --> <!--********************************************************************************--> <restConfiguration component="servlet" contextPath="/apiisp001" bindingMode="json" scheme="https" port="8443"> <dataFormatProperty key="prettyPrint" value="true" /> <apiProperty key="base.path" value="/apiisp001" /> <apiProperty key="api.description" value="APIISP001 - Test API" /> <apiProperty key="api.title" value="APIISP001" /> <apiProperty key="api.version" value="1.0.0" /> </restConfiguration> <!-- REST endpoints --> <rest path="/base"> <get uri="/1" id="isp.api.APIISP001.get.1"> <route> <!-- send the chunk to direct --> <to uri="direct-vm:APIISP001.1"/> </route> </get> </rest> </camelContext> </blueprint> The (untertow) web server runs with HTTPS on port 8443, other servlets are working. I tried https://localhost:8443/apiisp001/base/1 where I'd expect the response but did get a HTTP 404 error. Any hints are appreciated. See also the log for deployment 2020-08-18T07:31:28,421 | INFO | fileinstall-/opt/apache-karaf-4.2.9/deploy | BlueprintContainerImpl | 105 - org.apache.aries.blueprint.core - 1.10.2 | Blueprint bundle isp.api.APIISP001.xml/0.0.0 has been started 2020-08-18T07:31:28,432 | INFO | Blueprint Event Dispatcher: 1 | BlueprintCamelContext | 169 - org.apache.camel.karaf.camel-blueprint - 3.4.2 | Attempting to start CamelContext: isp.api.APIISP001 2020-08-18T07:31:28,437 | INFO | Blueprint Event Dispatcher: 1 | JmxManagementStrategy | 144 - org.apache.camel.camel-management - 3.4.2 | JMX is enabled 2020-08-18T07:31:28,484 | INFO | Blueprint Event Dispatcher: 1 | AbstractCamelContext | 115 - org.apache.camel.camel-base - 3.4.2 | Apache Camel 3.4.2 (isp.api.APIISP001) is starting 2020-08-18T07:31:28,484 | INFO | Blueprint Event Dispatcher: 1 | AbstractCamelContext | 115 - org.apache.camel.camel-base - 3.4.2 | StreamCaching is enabled on CamelContext: isp.api.APIISP001 2020-08-18T07:31:28,546 | INFO | Blueprint Event Dispatcher: 1 | AbstractCamelContext | 115 - org.apache.camel.camel-base - 3.4.2 | Using HealthCheck: camel-health 2020-08-18T07:31:28,592 | INFO | Blueprint Event Dispatcher: 1 | DefaultStreamCachingStrategy | 115 - org.apache.camel.camel-base - 3.4.2 | StreamCaching in use with spool directory: /opt/apache-karaf/data/tmp/camel/camel-tmp-ID-43c92ad4274c-1597499175862-121-1 and rules: [Spool > 128K body size] 2020-08-18T07:31:28,593 | INFO | Blueprint Event Dispatcher: 1 | JacksonDataFormat | 137 - org.apache.camel.camel-jackson - 3.4.2 | The option autoDiscoverObjectMapper is set to false, Camel won't search in the registry 2020-08-18T07:31:28,594 | INFO | Blueprint Event Dispatcher: 1 | JacksonDataFormat | 137 - org.apache.camel.camel-jackson - 3.4.2 | The option autoDiscoverObjectMapper is set to false, Camel won't search in the registry 2020-08-18T07:31:28,625 | INFO | Blueprint Event Dispatcher: 1 | InternalRouteStartupManager | 115 - org.apache.camel.camel-base - 3.4.2 | Route: isp.api.APIISP001.get.1 started and consuming from: servlet:/apiisp001/1 2020-08-18T07:31:28,626 | INFO | Blueprint Event Dispatcher: 1 | AbstractCamelContext | 115 - org.apache.camel.camel-base - 3.4.2 | Total 1 routes, of which 1 are started 2020-08-18T07:31:28,626 | INFO | Blueprint Event Dispatcher: 1 | AbstractCamelContext | 115 - org.apache.camel.camel-base - 3.4.2 | Apache Camel 3.4.2 (isp.api.APIISP001) started in 0.142 seconds 2020-08-18T07:31:28,643 | INFO | fileinstall-/opt/apache-karaf-4.2.9/deploy | fileinstall | 10 - org.apache.felix.fileinstall - 3.6.6 | Started bundle: blueprint:file:/opt/apache-karaf-4.2.9/deploy/isp.api.APIISP001.xml Best Gerald > Daniel Langevin <daniel.lange...@shq.gouv.qc.ca> hat am 17.08.2020 17:44 > geschrieben: > > > Hi, > > you have to specify the default http port number : 8181 for CamelServlet > > like this: > > http://servername.org:8181/apiisp001/1 > > > > > Daniel Langevin > Direction de l’assistance et des technologies > Direction des ressources informationnelles > > Société d’habitation du Québec > Édifice Marie-Guyart > 1054, rue Louis-Alexandre-Taschereau > Aile Jacques-Parizeau, 1er étage > Québec (Québec) G1R 5E7 > Téléphone : 418 643-4035, poste 1191 > Sans frais : 1 800 463-4315 > > > > > > >>> > De : Gerald Kallas <catsh...@mailbox.org> > À : "users@camel.apache.org" <users@camel.apache.org> > Date : 2020-08-17 11:22 > Objet : Camel REST DSL with servlet - API URL? > > Dear all, > > I'm going to configure a REST API similar to a (working) HTTP consumer. I > tried several URLs to call the API operation but get always a HTTP 404. > > Do I miss someting (e.g. the reference to the servletName)? Can someone point > me out which is the API URL for the get operation in my case? > > Thanks in advance > Gerald > > > My Blueprint DSL see below .. > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > > xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 > https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> > > <reference id="httpService" > interface="org.osgi.service.http.HttpService" /> > > <bean id="camelServlet" > class="org.apache.camel.component.servlet.CamelHttpTransportServlet"/> > > <bean class="org.apache.camel.component.osgi.OsgiServletRegisterer" > init-method="register" > destroy-method="unregister"> > <property name="servletName" value="APIISP001" /> > <property name="alias" value="/apiisp001" /> > <property name="httpService" ref="httpService" /> > <property name="servlet" ref="camelServlet" /> > </bean> > > <bean id="servlet" > class="org.apache.camel.component.servlet.ServletComponent" /> > > <camelContext id="isp.api.APIISP001" > xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" > useBreadcrumb="true"> > > > <!--********************************************************************************--> > <!-- REST API > --> > > <!--********************************************************************************--> > > <restConfiguration component="servlet" contextPath="/apiisp001" > bindingMode="json"> > <dataFormatProperty key="prettyPrint" value="true" /> > <apiProperty key="base.path" value="/apiisp001" /> > <apiProperty key="api.description" value="APIISP001 - > Test API" /> > <apiProperty key="api.title" value="APIISP001" /> > <apiProperty key="api.version" value="1.0.0" /> > </restConfiguration> > > <!-- REST endpoints --> > <rest path="/apiisp001"> > <get uri="/1" id="isp.api.APIISP001.get.1"> > <route> > <!-- send the chunk to direct --> > <to uri="direct-vm:APIISP001.1"/> > </route> > </get> > </rest> > > </camelContext> > > </blueprint> > > One example for a working HTTP consumer find below > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 > https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> > > <reference id="httpService" > interface="org.osgi.service.http.HttpService" /> > > <bean id="camelServlet" > class="org.apache.camel.component.servlet.CamelHttpTransportServlet"/> > > <bean class="org.apache.camel.component.osgi.OsgiServletRegisterer" > init-method="register" > destroy-method="unregister"> > <property name="servletName" value="WEB2SFO" /> > <property name="alias" value="/web2sfo" /> > <property name="httpService" ref="httpService" /> > <property name="servlet" ref="camelServlet" /> > </bean> > > <bean id="servlet" > class="org.apache.camel.component.servlet.ServletComponent" /> > > <camelContext xmlns="http://camel.apache.org/schema/blueprint"> > <route> > <from uri="servlet://get?servletName=WEB2SFO" /> > <setBody> > <constant>execution of /web2sfo/get</constant> > </setBody> > </route> > </camelContext> > > </blueprint> > > Here I could later on add a security definition that works well.