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 <[email protected]> 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 <[email protected]>
>
>> On Mon, Dec 20, 2010 at 14:42, Charles Moulliard <[email protected]>
>> 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
>>
>