Just raised https://issues.apache.org/jira/browse/CAMEL-3490 for that

On Mon, Jan 3, 2011 at 18:22, Guillaume Nodet <gno...@gmail.com> wrote:
> On Mon, Jan 3, 2011 at 17:55, Charles Moulliard <cmoulli...@gmail.com> wrote:
>> What you suggest (component=servlet) is by example what has been done in
>> this project of camel --> org.apache.camel.component.paxlogging ?
>
> Yes, the same way as for paxlogging camel component.
>
>> Question:  Is there a way to check that pax-web has well registered the
>> servlet defined in the web.xml file and deployed as a jar in hot deploy
>> directory ?
>
> If we were to rely on the osgi http service instead of pax-web, it
> would be a bit more portable.
> Just adding an osgi activator to camel-servlet would work fine for
> that imho, as the activator could register both the servlet in the
> osgi http service and the component resolver.
>
> Btw, this discussion is much more related to camel than karaf ;-)
>
>> On 03/01/11 17:33, Guillaume Nodet wrote:
>>>
>>> I think it should work, it may be a class loader issue.
>>> I think you have two solutions overall:
>>>   * either you create you own jetty server using camel-jetty and you
>>> set up the jetty server yourself
>>>   * you can use a wab packaging
>>>   * or you want to reuse the osgi http service and you need to set up
>>> a servlet and configure the security on the servlet
>>> For the later, the packaging does not have to be a war, but if you
>>> don't use a war, you'll have to write the code that will do the
>>> security and will register the servlet in the osgi http service.
>>> I think the easiest is using a wab, you just need to make sure you
>>> don't include the camel-servlet component or any camel jar into the
>>> war.
>>> Actually, if should start with an exploded war and a simple web.xml to
>>> make sure you don't include any code in the war itself.  I guess the
>>> trick is to expose the component so that other camel will find it.  It
>>> can be done by registering a ComponentResolver with a property
>>> (component=servlet) that would always register the same servlet
>>> component instance.
>>>
>>> On Mon, Jan 3, 2011 at 17:01, Charles Moulliard<cmoulli...@gmail.com>
>>>  wrote:
>>>>
>>>> I don't think that packaging camel-servlet in a war will work. Even if
>>>> we create a jar (=WAB, WAB) containing a web.xml with description of
>>>> servlet
>>>>
>>>>    <servlet>
>>>>        <servlet-name>CamelServlet</servlet-name>
>>>>        <display-name>Camel Http Transport Servlet</display-name>
>>>>        <servlet-class>
>>>>            org.apache.camel.component.servlet.CamelHttpTransportServlet
>>>>        </servlet-class>
>>>>        <init-param>
>>>>          <param-name>matchOnUriPrefix</param-name>
>>>>          <param-value>true</param-value>
>>>>        </init-param>
>>>>        <load-on-startup>1</load-on-startup>
>>>>
>>>>    </servlet>
>>>>
>>>> Caused by: java.lang.IllegalArgumentException: Cannot find the
>>>> deployed servlet, please configure the ServletComponent or configure a
>>>> org.apache.camel.component.servlet.CamelHttpTransportServlet servlet
>>>> in web.xml
>>>>        at
>>>> org.apache.camel.component.servlet.ServletComponent.getCamelServlet(ServletComponent.java:55)
>>>>        at
>>>> org.apache.camel.component.servlet.ServletComponent.connect(ServletComponent.java:109)
>>>>        at
>>>> org.apache.camel.component.http.HttpEndpoint.connect(HttpEndpoint.java:148)
>>>>        at
>>>> org.apache.camel.component.http.HttpConsumer.doStart(HttpConsumer.java:52)
>>>>        at
>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
>>>>        at
>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>>        at
>>>> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.startServices(DefaultCamelContext.java:1484)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:1750)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:1703)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1629)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1419)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1314)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1213)
>>>>        at
>>>> org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:164)
>>>>        at
>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
>>>>        at
>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>>        at
>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1191)
>>>>        at
>>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:203)
>>>>        at
>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101)
>>>>
>>>>
>>>> it will not be possible for camel to find the CamelHttpServlet
>>>>
>>>> Regards,
>>>>
>>>> Charles Moulliard
>>>>
>>>> Sr. Principal Solution Architect - FuseSource
>>>> Apache Committer
>>>>
>>>> Blog : http://cmoulliard.blogspot.com
>>>> Twitter : http://twitter.com/cmoulliard
>>>> Linkedin : http://www.linkedin.com/in/charlesmoulliard
>>>> Skype: cmoulliard
>>>>
>>>>
>>>>
>>>> On Mon, Dec 20, 2010 at 3:06 PM, Achim Nierbeck<bcanh...@googlemail.com>
>>>>  wrote:
>>>>>
>>>>> Just one more comment from me, a OSGi-War (aka wab) can also be used :)
>>>>> Totally forgot to mention that when Charles asked me directly, and I
>>>>> didn't
>>>>> have a real good answer ;)
>>>>>
>>>>> 2010/12/20 Guillaume Nodet<gno...@gmail.com>
>>>>>
>>>>>> On Mon, Dec 20, 2010 at 14:42, Charles Moulliard<cmoulli...@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I would like to start a discussion around the following point as it
>>>>>>> does
>>>>>>
>>>>>> not
>>>>>>>
>>>>>>> seem obvious to find an answer. To authenticate a HTTP user with camel
>>>>>>> on
>>>>>>> Karaf we can use the component camel-jetty and camel-servlet. Jetty +
>>>>>>
>>>>>> JAAS +
>>>>>>>
>>>>>>> camel can be easily configured using Spring beans + securityHandler
>>>>>>> with
>>>>>>> camel but this does not seem the case with camel-servlet.
>>>>>>>
>>>>>>> The component camel-servlet does not accept as parameter a handler(s)
>>>>>>> for
>>>>>>> Jetty. This is normal as camel can be deployed in different
>>>>>>> Application
>>>>>>> Servers which are not build with Jetty. So what alternative(s) exist
>>>>>>> to
>>>>>>> configure camel-servlet with Jetty + JAAS on Karaf ? Using jetty.xml
>>>>>>> (in
>>>>>>
>>>>>> etc
>>>>>>>
>>>>>>> folder) but how to link camel servlet with jetty security handler ?
>>>>>>>
>>>>>> Unless I'm wrong, when you use camel-servlet, you're responsible for
>>>>>> setting up the CamelHttpTransportServlet servlet.
>>>>>> In OSGi, it could be done either using a standard web application
>>>>>> (deployed using the war support), or directly using the OSGi HTTP
>>>>>> service.  In the former case, you'd have to configure the web.xml for
>>>>>> security.  In the latter case, you need to use the OSGi HTTP service
>>>>>> api to properly configure the security bits (by implementing
>>>>>> org.osgi.service.http.HttpContext interface).
>>>>>>
>>>>>> I agree we could have an example of showing the last way in camel .
>>>>>> Configuring the war for security isn't specific to OSGi or Camel fwiw.
>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Charles
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Cheers,
>>>>>> Guillaume Nodet
>>>>>> ------------------------
>>>>>> Blog: http://gnodet.blogspot.com/
>>>>>> ------------------------
>>>>>> Open Source SOA
>>>>>> http://fusesource.com
>>>>>>
>>>
>>>
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to