I think you are missing:

        <endpointProperty key="servletName" value="APIISP001”/>


In the <restConfiguration> 

Best regards,
Alex soto




> On Aug 18, 2020, at 3:32 AM, Gerald Kallas <catsh...@mailbox.org> wrote:
> 
> 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.

Reply via email to