pax web default and error handler override

359 views
Skip to first unread message

Maurice Betzel

unread,
Feb 4, 2018, 9:03:57 AM2/4/18
to OPS4J
Dear community,

what is the best way to override the Jetty default org.eclipse.jetty.server.handler.DefaultHandler and ErrorHandler?
By jetty.xml DI configuration or can this be done by pax web services, and if yes are there any examples?
Other suggestions also welcome.

Grzegorz Grzybek

unread,
Feb 5, 2018, 1:50:39 AM2/5/18
to op...@googlegroups.com
Hello

"The handler" of single Jetty server inside pax-web is org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection - which is kind of "entry point" from Jetty to pax-web. You generally should not change it. In pax-web, the server is org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper class (extending directly from org.eclipse.jetty.server.Server).
So you can't easily change it.

If you mean Default and Error handlers of single web application, you can. DefaultHandler is just servlet registered with "/" alias and "default" name - it's registered even if you don't have such explicit servlet - pax-web-jetty will register one for you (unless you provide your own). See for example this sample.

regards
Grzegorz Grzybek

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Maurice Betzel

unread,
Feb 5, 2018, 3:11:11 AM2/5/18
to OPS4J
Moin Grzegor,

i did get the default handler (aka "/") working by blueprint (from the pax web samples dir), but this does not cover other http contexts further up in the context tree. I have some Camel routes running there and i would like to have one default exception and error page for all contexts. Jetty provides such a possibility by IoC in the Jetty XML where one can override the default classes, but due to OSGi class-loading Jetty will not find my overriding classes declared in a separate bundle.
At this moment i am looking at the "bundleContext.getServiceReference( "org.ops4j.pax.web.service.WebContainer" );" as it has a method registerErrorPage which with a null httpContext should use the default http context.
Or is there a way to register a bundle so that Jetty wil find it by its jetty.xml?

Grzegorz Grzybek

unread,
Feb 5, 2018, 4:24:35 AM2/5/18
to op...@googlegroups.com
Hello

The only thing that I can think of (I didn't try it and I don't know what you can do with jetty.xml without checking) is to:
 - add a handler inside etc/jetty.xml using <Add> element for respective <Server>
 - put this handler into a bundle *that you can install as fragment bundle of pax-web-jetty* - but as I said - I didn't try.

regards
Grzegorz Grzybek

--

Maurice Betzel

unread,
Feb 5, 2018, 5:08:15 AM2/5/18
to OPS4J
I did get hold of the WebContainer, but the HttpServiceStarted object was not reachable because of package encapsulation. This is the object that has a reference to the Jetty Server object containing the needed methods.
Will try the fragment solution now, there is a example in the samples folder to get started with.

Grzegorz Grzybek

unread,
Feb 5, 2018, 5:17:43 AM2/5/18
to op...@googlegroups.com
Good luck! ;)

regards
Grzegorz Grzybek

2018-02-05 11:08 GMT+01:00 Maurice Betzel <betze...@gmail.com>:
I did get hold of the WebContainer, but the HttpServiceStarted object was not reachable because of package encapsulation. This is the object that has a reference to the Jetty Server object containing the needed methods.
Will try the fragment solution now, there is a example in the samples folder to get started with.

--

Maurice Betzel

unread,
Feb 5, 2018, 7:58:33 AM2/5/18
to OPS4J
Its working, i have copied the default handler from Jetty and it gets hit by the debugger. Now i have to change the response, favicon etc...

Maurice Betzel

unread,
Feb 5, 2018, 8:18:12 AM2/5/18
to OPS4J
Revoking this posting, in a context higherup in the tree Jetty serves the Jetty default again. I need to remove this default jetty handler...

Maurice Betzel

unread,
Feb 6, 2018, 3:06:18 AM2/6/18
to OPS4J
Following sutuation, if i add my default handler it gets picked up until the alias of an other context takes over. Then the default handler of Jetty takes over again e.g. https://somehost/nonexistingcontext returns my default handler and https://somehost/api/rest/existingcontext/nonexistingcontext returns the Jetty default handler (https://somehost/api/rest/existingcontext hits my app). Where does this default handler come from? My bundle fragment Jetty XML:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">

<Configure id="Server" class="org.eclipse.jetty.server.Server">

<!-- ========================================================== -->
<!-- Set connectors -->
<!-- ========================================================== -->
<!-- One of each type! -->
<!-- ========================================================== -->

<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Set name="secureScheme">https</Set>
<Set name="securePort">
<Property name="jetty.secure.port" default="8443"/>
</Set>
<Set name="securePort">
<Property name="jetty.secure.port" default="8444"/>
</Set>
<Set name="outputBufferSize">32768</Set>
<Set name="requestHeaderSize">8192</Set>
<Set name="responseHeaderSize">8192</Set>
<Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">false</Set>
<Set name="headerCacheSize">512</Set>
</New>

<!-- ========================================================== -->
<!-- Configure Authentication Realms -->
<!-- Realms may be configured for the entire server here, or -->
<!-- they can be configured for a specific web app in a context -->
<!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
<!-- example). -->
<!-- ========================================================== -->
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<Set name="name">karaf</Set>
<Set name="loginModuleName">karaf</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<Set name="name">default</Set>
<Set name="loginModuleName">karaf</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
<!--<Call name="addBean">-->
<!--<Arg>-->
<!--<New class="eu.abeel.platform.http.paxweb.ErrorHandler"/>-->
<!--</Arg>-->
<!--</Call>-->

<Get name="handler">
<Call name="addHandler">
<Arg>
<New class="eu.abeel.platform.http.paxweb.DefaultHandler">
<Arg>
<Ref refid="Server"/>
</Arg>
</New>
</Arg>
</Call>
</Get>

<New id="lansslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Arg>
<Ref refid="httpConfig"/>
</Arg>
<Call name="addCustomizer">
<Arg>
<New class="org.eclipse.jetty.server.SecureRequestCustomizer"/>
</Arg>
</Call>
</New>

<New id="wansslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Arg>
<Ref refid="httpConfig"/>
</Arg>
<Call name="addCustomizer">
<Arg>
<New class="org.eclipse.jetty.server.SecureRequestCustomizer"/>
</Arg>
</Call>
</New>

<New id="lansslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStorePath">
<SystemProperty name="karaf.home"/>/etc/somekeystore.jks
</Set>
<Set name="KeyStorePassword">xxx</Set>
<Set name="KeyManagerPassword">xxx</Set>
<Set name="EndpointIdentificationAlgorithm"></Set>
<Set name="NeedClientAuth">
<Property name="jetty.ssl.needClientAuth" default="false"/>
</Set>
<Set name="WantClientAuth">
<Property name="jetty.ssl.wantClientAuth" default="false"/>
</Set>
<!-- Disable SSLv3 to protect against POODLE bug -->
<Set name="ExcludeProtocols">
<Array type="java.lang.String">
<Item>SSLv3</Item>
</Array>
</Set>
</New>

<New id="wansslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStorePath">
<SystemProperty name="karaf.home"/>/etc/secondkeystore.jks
</Set>
<Set name="KeyStorePassword">xxx</Set>
<Set name="KeyManagerPassword">xxx</Set>
<Set name="EndpointIdentificationAlgorithm"></Set>
<Set name="NeedClientAuth">
<Property name="jetty.ssl.needClientAuth" default="false"/>
</Set>
<Set name="WantClientAuth">
<Property name="jetty.ssl.wantClientAuth" default="false"/>
</Set>
<!-- Disable SSLv3 to protect against POODLE bug -->
<Set name="ExcludeProtocols">
<Array type="java.lang.String">
<Item>SSLv3</Item>
</Array>
</Set>
<Set name="ExcludeCipherSuites">
<Array type="String">
<Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
<Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
<Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
</Array>
</Set>
</New>

<Call id="lanhttpsConnector" name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="Server"/>
</Arg>
<Arg name="acceptors" type="int">
<Property name="ssl.acceptors" default="-1"/>
</Arg>
<Arg name="selectors" type="int">
<Property name="ssl.selectors" default="-1"/>
</Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.eclipse.jetty.server.SslConnectionFactory">
<Arg name="next">http/1.1</Arg>
<Arg name="sslContextFactory">
<Ref refid="lansslContextFactory"/>
</Arg>
</New>
</Item>
<Item>
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config">
<Ref refid="lansslHttpConfig"/>
</Arg>
</New>
</Item>
</Array>
</Arg>
<Set name="name">127.0.0.1:8443</Set>
<Set name="host">
<Property name="jetty.host" default="127.0.0.1"/>
</Set>
<Set name="port">
<Property name="https.port" default="8443"/>
</Set>
<Set name="idleTimeout">
<Property name="https.timeout" default="30000"/>
</Set>
<Set name="soLingerTime">
<Property name="https.soLingerTime" default="-1"/>
</Set>
<Set name="acceptorPriorityDelta">
<Property name="ssl.acceptorPriorityDelta" default="0"/>
</Set>
<Set name="selectorPriorityDelta">
<Property name="ssl.selectorPriorityDelta" default="0"/>
</Set>
<Set name="acceptQueueSize">
<Property name="https.acceptQueueSize" default="0"/>
</Set>
</New>
</Arg>
</Call>

<Call id="wanhttpsConnector" name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="Server"/>
</Arg>
<Arg name="acceptors" type="int">
<Property name="ssl.acceptors" default="-1"/>
</Arg>
<Arg name="selectors" type="int">
<Property name="ssl.selectors" default="-1"/>
</Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.eclipse.jetty.server.SslConnectionFactory">
<Arg name="next">http/1.1</Arg>
<Arg name="sslContextFactory">
<Ref refid="wansslContextFactory"/>
</Arg>
</New>
</Item>
<Item>
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config">
<Ref refid="wansslHttpConfig"/>
</Arg>
</New>
</Item>
</Array>
</Arg>
<Set name="name">127.0.0.1:8444</Set>
<Set name="host">
<Property name="jetty.host" default="127.0.0.1"/>
</Set>
<Set name="port">
<Property name="https.port" default="8444"/>
</Set>
<Set name="idleTimeout">
<Property name="https.timeout" default="30000"/>
</Set>
<Set name="soLingerTime">
<Property name="https.soLingerTime" default="-1"/>
</Set>
<Set name="acceptorPriorityDelta">
<Property name="ssl.acceptorPriorityDelta" default="0"/>
</Set>
<Set name="selectorPriorityDelta">
<Property name="ssl.selectorPriorityDelta" default="0"/>
</Set>
<Set name="acceptQueueSize">
<Property name="https.acceptQueueSize" default="0"/>
</Set>
</New>
</Arg>
</Call>

</Configure>

If i replace the handler collection i break pax web and cannot register further handlers:

<Set name="handler">
<New class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New class="eu.abeel.platform.http.paxweb.DefaultHandler" />
</Item>
</Array>
</Set>
</New>
</Set>


Maurice Betzel

unread,
Feb 6, 2018, 3:49:55 AM2/6/18
to OPS4J
My default handler gets hit on https://somehost/api/rest/existingcontext/nonexistingcontext, but reports that the base request was handled and the response was committed. Did the Camel servlet handle the error before my default handler?
Message has been deleted

Grzegorz Grzybek

unread,
Feb 6, 2018, 4:37:48 AM2/6/18
to op...@googlegroups.com
Hello

Hmm, I see your case is quite complex - is there a chance you prepare integration test in pax-web-itests/pax-web-itests-container/pax-web-itests-container-jetty?

I'd have to try to reproduce your issue, but I have to know what other web bundles / wars you have installed - maybe you also have some whiteboard services or plain httpService.registerServlet() calls?

regards
Grzegorz Grzybek

2018-02-06 10:28 GMT+01:00 Maurice Betzel <betze...@gmail.com>:
No, it did not. Jetty is producing the response using the default Jetty handler.


Am Dienstag, 6. Februar 2018 09:49:55 UTC+1 schrieb Maurice Betzel:
My default handler gets hit on https://somehost/api/rest/existingcontext/nonexistingcontext, but reports that the base request was handled and the response was committed. Did the Camel servlet handle the error before my default handler?

--

Maurice Betzel

unread,
Feb 6, 2018, 4:49:22 AM2/6/18
to OPS4J
I am getting to the point here :), in the
org.eclipse.jetty.servlet.ServletHolder.class

i am hitting method handle on line 571 calling the CamelHttpTransportServlet:
servlet.service(request, response);

Before the call the request reports not handled and the response object does not have a writer yet. If it returns from Camel _handled is true and the response object has a writer set containing the default Jetty html page. where did this come from?
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.

Grzegorz Grzybek

unread,
Feb 6, 2018, 5:01:19 AM2/6/18
to op...@googlegroups.com
2018-02-06 10:49 GMT+01:00 Maurice Betzel <betze...@gmail.com>:
I am getting to the point here :), in the
org.eclipse.jetty.servlet.ServletHolder.class

i am hitting method handle on line 571 calling the CamelHttpTransportServlet:
servlet.service(request, response);

Before the call the request reports not handled and the response object does not have a writer yet. If it returns from Camel _handled is true and the response object has a writer set containing the default Jetty html page. where did this come from?

I spend lot of my working life debugging things. In such case, I usually find write access to given field (like _handled) and wait till the breakpoint is hit. I look at thread dumps and check up the stack to see why we ended here. I sometimes compare the thread dumps to see where does the stack trace differs from "normal scenario" and look up at the place where stacks differ.

regards
Grzegorz
 

 Dienstag, 6. Februar 2018 10:37:48 UTC+1 schrieb Grzegorz Grzybek:
Hello

Hmm, I see your case is quite complex - is there a chance you prepare integration test in pax-web-itests/pax-web-itests-container/pax-web-itests-container-jetty?

I'd have to try to reproduce your issue, but I have to know what other web bundles / wars you have installed - maybe you also have some whiteboard services or plain httpService.registerServlet() calls?

regards
Grzegorz Grzybek

2018-02-06 10:28 GMT+01:00 Maurice Betzel <betze...@gmail.com>:
No, it did not. Jetty is producing the response using the default Jetty handler.


Am Dienstag, 6. Februar 2018 09:49:55 UTC+1 schrieb Maurice Betzel:
My default handler gets hit on https://somehost/api/rest/existingcontext/nonexistingcontext, but reports that the base request was handled and the response was committed. Did the Camel servlet handle the error before my default handler?

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscribe@googlegroups.com.

Maurice Betzel

unread,
Feb 6, 2018, 5:03:21 AM2/6/18
to OPS4J
Camel is calling the method after not finding any matching consumer:
response.sendError(HttpServletResponse.SC_NOT_FOUND);

and just returns the thread, meaning the Response produced by Jetty has the default Jetty exception page set somewhere.

Grzegorz Grzybek

unread,
Feb 6, 2018, 5:07:38 AM2/6/18
to op...@googlegroups.com
And the error handler is NOT the one you wanted to set? I don't see any custom ErrorHandler in your jetty.xml...

~Grzegorz

To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscribe@googlegroups.com.

Maurice Betzel

unread,
Feb 6, 2018, 5:23:16 AM2/6/18
to OPS4J
If you take a look at

org.eclipse.jetty.server.Response method sendError


you will see Jetty is returning the default error web page if no error handler is set :( . For my understanding it should pick up my default handler for producing the page.
Can i set the error handler to point to my default handler?

Maurice Betzel

unread,
Feb 6, 2018, 5:28:52 AM2/6/18
to OPS4J
I am hitting the Jetty

org.eclipse.jetty.server.handler.ErrorHandler

Grzegorz Grzybek

unread,
Feb 6, 2018, 5:33:24 AM2/6/18
to op...@googlegroups.com
I think there's separate default handler and error handler.
In case you have servlets, servlet may provide error pages definitions for given exceptions and/or HTTP error codes.

regards
Grzegorz

To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscribe@googlegroups.com.

Maurice Betzel

unread,
Feb 6, 2018, 5:37:54 AM2/6/18
to OPS4J
Adding my own error handler...

Maurice Betzel

unread,
Feb 6, 2018, 5:58:01 AM2/6/18
to OPS4J
I have added my own error handler with addBean and i can see it on the Server object, but in the Jetty Response object on method sendError the ErrorHandler.getErrorHandler returns the Jetty ErrorPageErrorHandler. I am missing something more...

Grzegorz Grzybek

unread,
Feb 6, 2018, 6:06:45 AM2/6/18
to op...@googlegroups.com
2018-02-06 11:58 GMT+01:00 Maurice Betzel <betze...@gmail.com>:
I have added my own error handler with addBean and i can see it on the Server object, but in the Jetty Response object on method sendError the ErrorHandler.getErrorHandler returns the Jetty ErrorPageErrorHandler. I am missing something more...

Another debugging hint then - I usually try to not hashCodes of objects (System.identityHashCode(object)) for different objects and check if later these are the same objects. So I'd put a breakpoint where <Add ... ErrorHandler> is called and then verify if it's the same issue at invocation time.

regards
Grzegorz

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscribe@googlegroups.com.

Maurice Betzel

unread,
Feb 6, 2018, 6:45:59 AM2/6/18
to OPS4J
I do know about debugging and hash codes :), following the Jetty docs i need to set a ErrorHandler on the Server context:

If no error page mapping is defined, or if the error page resource itself has an error, then the error page will be generated by an instance of ErrorHandler configured either the Context or the Server.

How and where to set my ErrorPage on the Context, as the Server has the bean already set...
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.

Maurice Betzel

unread,
Feb 6, 2018, 8:30:43 AM2/6/18
to OPS4J
How do i remove the ErrorPageErrorHandler from my default context?

Maurice Betzel

unread,
Feb 6, 2018, 8:42:06 AM2/6/18
to OPS4J
...or set my error page on the ErrorPageErrorHandler?

Maurice Betzel

unread,
Feb 6, 2018, 9:53:12 AM2/6/18
to OPS4J
Defaulting back to the blueprint setup, maybe i can configure costum exceptions on each registered handler / alias pair.

Maurice Betzel

unread,
Feb 7, 2018, 9:28:36 AM2/7/18
to OPS4J
Question, can i register a camel servlet on the pax web blueprint services?
Now i am using:

Code hier eingeben...
<reference id="httpService" interface="org.osgi.service.http.HttpService"/>

<bean class="org.apache.camel.component.servlet.osgi.OsgiServletRegisterer" init-method="register" destroy-method="unregister">
    <property name="alias" value="${rest.alias}"/>
    <property name="httpService" ref="httpService"/>
    <property name="servlet" ref="camelServlet"/>
</bean>

<bean id="camelServlet" class="org.apache.camel.component.servlet.CamelHttpTransportServlet"/>

<bean id="htmlParser" class="eu.abeel.platform.adapter.customs.nl.webservice.html2rss.service.internal.HtmlParser">
    <property name="url" value="${douane.url}"/>
    <property name="cssSelector" value="${douane.css.selector}"/>
</bean>

<camelContext id="platform-adapter-customs-nl-webservice-html2rss" xmlns="http://camel.apache.org/schema/blueprint">

    <restConfiguration component="servlet" scheme="{{context.scheme}}" bindingMode="off" host="{{context.host}}" port="{{context.port}}"/>

    <rest path="/">


Grzegorz Grzybek

unread,
Feb 9, 2018, 2:15:24 AM2/9/18
to op...@googlegroups.com
Maurice - you probably can (I didn't try). I'm not sure what OsgiServletRegisterer does, but with pax-http-whiteboard, you can just register HttpServlet as osgi service and have it picked up and registered in http service. I recommend you try the samples in https://github.com/ops4j/org.ops4j.pax.web/tree/pax-web-6.1.x/samples

best regards
Grzegorz Grzybek

--
--
------------------
OPS4J - http://www.ops4j.org - op...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscribe@googlegroups.com.

Maurice Betzel

unread,
Feb 9, 2018, 11:12:43 AM2/9/18
to OPS4J
After replacing the OsgiServletRegisterer with :

<!--<bean class="org.apache.camel.component.servlet.osgi.OsgiServletRegisterer" init-method="register" destroy-method="unregister">-->
       
<!--<property name="alias" value="${rest.alias}"/>-->
       
<!--<property name="httpService" ref="httpService"/>-->
       
<!--<property name="servlet" ref="dutchCustomsHtml2RssCamelServlet"/>-->
       
<!--<property name="servletName" value="dutchCustomsHtml2RssCamelServlet"/>-->
   
<!--</bean>-->

   
<service id="whiteBoardServletService" ref="dutchCustomsHtml2RssCamelServlet" interface="javax.servlet.Servlet">
       
<service-properties>
           
<entry key="alias" value="${rest.alias}"/>
           
<entry key="servletName" value="dutchCustomsHtml2RssCamelServlet"/>
       
</service-properties>
   
</service>

the servletEvent gets hit in Pax Web HttpServiceStartet.

Karaf reports:

karaf@root()> http:list
ID
Servlet                   Servlet-Name     State       Alias                       Url
───┼───────────────────────────┼─────────────────┼─────────────┼─────────────────────────────┼────────────────────────────────
88 JolokiaServlet             ServletModel-2   Undeployed   /jolokia                     [/jolokia/*]
88 JolokiaServlet             ServletModel-5   Deployed     /jolokia                     [/jolokia/*]
97 CamelHttpTransportServlet ServletModel-14 Deployed     /api/rest/rss/douane-status [/api/rest/rss/douane-status/*]

but Camel does not dispath my HTTP GET request, i get a 404. Some CamelServlet thingies seem to be missing.
To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+un...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages