Hi, for Handlers you'll need to work differently in Karaf compared to a vanilla Jetty. This is due to that Jetty is running embedded. Therfore you first need to get a hold of all handlers and add your new handler to it. Take a look at the sample at [1].
regards, Achim [1] - https://github.com/ops4j/org.ops4j.pax.web/blob/master/samples/jetty-config-fragment/src/main/resources/jetty.xml#L50-L64 2015-04-22 15:07 GMT+02:00 Daisuke Otaka <[email protected]>: > Hi, > > I'm trying URL redirect by the Jetty RewriteHandler now, but it doesn't > work > fine. > Kindly let me know if you have any suggestion. > > [Objective] > Redirect request URL from A to B. > A: http://dev:8040/voxer/HelloService > B: http://dev:8040/services/HelloService > > [Current Settings] > 1. Add bundle file (jar) > > /opt/Talend-5.6.1/runtime/system/org/eclipse/jetty/jetty-rewrite/7.6.9.v20130131/jetty-rewrite-7.6.9.v20130131.jar > > 2. Add bundle setting to my karaf standard feature xml file. > > /opt/Talend-5.6.1/runtime/system/org/apache/karaf/assemblies/features/standard/2.3.9/standard-2.3.9-features.xml > ----- > <feature name="jetty" description="Provide Jetty engine support" > version="7.6.9.v20130131" resolver="(obr)"> > <bundle dependency="true" > > start-level="30">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.4.0</bundle> > <bundle dependency="true" > > start-level="30">mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/1.2</bundle> > <bundle dependency="true" > start-level="30">mvn:javax.mail/mail/1.4.5</bundle> > <bundle dependency="true" > > start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-util/7.6.9.v20130131</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-io/7.6.9.v20130131</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-http/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-client/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-continuation/7.6.9.v20130131</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-jmx/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-server/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-security/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-servlet/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-servlets/7.6.9.v20130131</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-xml/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-webapp/7.6.9.v20130131</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-jndi/7.6.9.v20130131</bundle> > <bundle > start-level="30">mvn:org.eclipse.jetty/jetty-plus/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-websocket/7.6.9.v20130131</bundle> > <bundle > > start-level="30">mvn:org.eclipse.jetty/jetty-rewrite/7.6.9.v20130131</bundle> > </feature> > ----- > > 3. Add "jetty-rewrite.xml" file reference setting. > > > /opt/Talend-5.6.1/runtime/system/org/apache/karaf/assemblies/features/standard/2.3.9/standard-2.3.9-features.xml > ----- > <feature name="http" description="Implementation of the OSGi HTTP > service" version="2.3.9" resolver="(obr)"> > <configfile > > finalname="/etc/jetty.xml">mvn:org.apache.karaf/apache-karaf/2.3.9/xml/jettyconfig</configfile> > <config name="org.ops4j.pax.web"> > org.osgi.service.http.port=8181 > javax.servlet.context.tempdir=${karaf.data}/pax-web-jsp > > > org.ops4j.pax.web.config.file=${karaf.base}/etc/jetty.xml,${karaf.base}/etc/jetty-rewrite.xml > </config> > <feature version="[7.0,8.0)">jetty</feature> > <bundle > start-level="30">mvn:org.ops4j.pax.web/pax-web-api/1.1.17</bundle> > <bundle > start-level="30">mvn:org.ops4j.pax.web/pax-web-spi/1.1.17</bundle> > <bundle > start-level="30">mvn:org.ops4j.pax.web/pax-web-runtime/1.1.17</bundle> > <bundle > start-level="30">mvn:org.ops4j.pax.web/pax-web-jetty/1.1.17</bundle> > </feature> > ----- > > 4. Create file "jetty-rewrite.xml" > > /opt/Talend-5.6.1/esb/container/etc/jetty-rewrite.xml > ----- > <?xml version="1.0"?> > <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting// > DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd" > ;> > > <Configure id="Server" class="org.eclipse.jetty.server.Server"> > > > <New id="Rewrite" > class="org.eclipse.jetty.rewrite.handler.RewriteHandler"> > <Set name="rewriteRequestURI">true</Set> > <Set name="rewritePathInfo">false</Set> > <Set name="originalPathAttribute">requestedPath</Set> > > > <Call name="addRule"> > <Arg> > <New > class="org.eclipse.jetty.rewrite.handler.RedirectPatternRule"> > <Set name="pattern">/voxer/*</Set> > <Set name="location">/services/</Set> > </New> > </Arg> > </Call> > </New> > > > <Set name="handler"><Ref id="Rewrite" /></Set> > > </Configure> > ----- > > 5. Restart karaf > > Best Regards, > Daisuke Otaka > > > > > -- > View this message in context: > http://karaf.922171.n3.nabble.com/URL-Redirecting-by-Jetty-RewriteHandler-tp4039880.html > Sent from the Karaf - Dev mailing list archive at Nabble.com. > -- Apache Member Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead blog <http://notizblog.nierbeck.de/> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> Software Architect / Project Manager / Scrum Master
