The "addHandler" approach doesn't work (at least for me) in a custom jetty.xml
in 6.1.26 standalone. The following DOES work.
<Set name="handler">
<New id="Handlers" class="org.mortbay.jetty.handler.RewriteHandler">
<Set name="rewriteRequestURI">false</Set>
<Set name="rewritePathInfo">false</Set>
<Set name="originalPathAttribute">requestedPath</Set>
<Call name="addRewriteRule"><Arg>/howdy/*</Arg><Arg>/hello</Arg></Call>
<Call
name="addRewriteRule"><Arg>/docs/*</Arg><Arg>/javadoc</Arg></Call>
<Set name="handler">
<New id="Handlers"
class="org.mortbay.jetty.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.mortbay.jetty.Handler">
<Item>
<New id="Contexts"
class="org.mortbay.jetty.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler"
class="org.mortbay.jetty.handler.DefaultHandler"/>
</Item>
<Item>
<New id="RequestLog"
class="org.mortbay.jetty.handler.RequestLogHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
</New>
</Set>
Here, I'm setting the RewriteHandler as the handler that is returned for name
"handler". I then add the other required handlers as an array to it. This
works fine in standalone. Seems like I could do something similar with PAX
Web, but I don't really know anything about PAX Web 0.7.4 handler
customizations. If this was exposed, I could simply add PAX Web's customized
Handler(s) to the array.
Troy
________________________________________
From: [email protected] [[email protected]] on
behalf of Achim Nierbeck [[email protected]]
Sent: Friday, June 03, 2011 11:47 AM
To: [email protected]
Subject: Re: PAX Web Fragment Bundle Issue
Hi Troy,
the only other idea that crosses my mind is to test it on a vanilla
Jetty server if that configuration works
out of the box since if the jetty server supports it it should also work
inside the pax-web context.
regards, Achim
Am 03.06.2011 00:49, schrieb Troy Waldrep:
> We're too close to product release to try such a risky move, so no we
> haven't. I was hoping that it would work with the version of PAX Web that's
> already in our stack.
>
> I can run a test on 1.0.3 to see if it works. I'll have to change the
> jetty.xml if I do that since the RewriteHandler's API changed pretty
> significantly, so it won't be an apples to apples comparison.
>
> Troy
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Achim Nierbeck
> Sent: Thursday, June 02, 2011 3:48 PM
> To: [email protected]
> Subject: Re: PAX Web Fragment Bundle Issue
>
> Did you try with the latest pax web version, 1.0.3 and jetty 7?
> I never tried with the 0.7 version of pax web and it's kind of outdated.
>
> regards, Achim
>
> Am 02.06.2011 16:39, schrieb Troy Waldrep:
>> I read the documented APIs of the exact version of Jetty 6 that is used by
>> PAX Web 0.7.4, and it does support the methods and signatures that I'm
>> using. I also double-checked by opening the jetty jar and looked at the
>> signatures of the associated classes. So... I'm at a bit of a loss.
>>
>> Troy
>> ________________________________
>> From: [email protected] [[email protected]] on
>> behalf of Achim Nierbeck [[email protected]]
>> Sent: Thursday, June 02, 2011 4:07 AM
>> To: [email protected]
>> Subject: Re: PAX Web Fragment Bundle Issue
>>
>> Hi Troy,
>>
>> you might stop banging your head, it's not due to a failure of you :-)
>>
>> The thing is, pax-web needs to create a specialized Context Handler,
>>
>> the steps in
>> http://ops4j1.jira.com/wiki/display/paxweb/Advanced+Jetty+Configuration
>> for adding specialized handlers was tested with pax-web 1.0.3 and Jetty 7.x
>> So this might be an issue of Jetty itself.
>> I don't know if jetty 6 supports the addHandle method at all.
>> You have to take a look at the jetty documentation.
>> Besides that your jetty.xml looks good so far I can not see
>> why this wouldn't work, besides that jetty might not support it. :(
>>
>>
>> regards, Achim
>>
>> Am 02.06.2011 00:45, schrieb Troy Waldrep:
>> Hello,
>>
>> We're hooking up a fragment bundle that contains a custom jetty.xml file to
>> the jetty bundle of PAX Web 0.7.4 (bundles Jetty 6.1.26.1). Part of the
>> jetty.xml works as expected and exposes jetty& PAX Web MBeans. The second
>> part attempts to add a custom Handler to rewrite shortcut URLs to our *real*
>> URLs. For some reason, the second part throws an illegal argument error. I
>> banged my head on this one for a day before deciding to ask the list. No
>> further information beyond the illegal argument error is provided, even at
>> debug-level logging. The actual error message is provided below the message
>> below.
>>
>> The jetty.xml file:
>>
>> <Configure class="org.mortbay.jetty.Server">
>> <!-THIS PART WORKS GREAT!!! -->
>> <Call id="jettyMBeanServer"
>> class="java.lang.management.ManagementFactory"
>> name="getPlatformMBeanServer"/>
>> <Get id="Container" name="container">
>> <Call name="addEventListener">
>> <Arg>
>> <New class="org.mortbay.management.MBeanContainer">
>> <Arg>
>> <Ref id="jettyMBeanServer"/>
>> </Arg>
>> <Call name="start"/>
>> </New>
>> </Arg>
>> </Call>
>> </Get>
>>
>> <!-THIS PART THROWS AN ILLEGAL ARGUMENT ERROR -->
>> <Get id="Handler" name="handler">
>> <Call name="addHandler">
>> <Arg>
>> <New class="org.mortbay.jetty.handler.RewriteHandler">
>> <Set name="rewriteRequestURI">true</Set>
>> <Set name="rewritePathInfo">false</Set>
>> <Set name="originalPathAttribute">requestedPath</Set>
>> <Call
>> name="addRewriteRule"><Arg>/designers</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/design</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/digui</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/home</Arg><Arg>/Designers/HomePage.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/pd</Arg><Arg>/Designers/ProcessDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/md</Arg><Arg>/Designers/MapDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/im</Arg><Arg>/Designers/IntegrationManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/admin</Arg><Arg>/Designers/Admin.html</Arg></Call>
>> </New>
>> </Arg>
>> </Call>
>> </Get>
>> </Configure>
>>
>> The error from the log file:
>>
>> 01 Jun 2011 17:14:24,083 | DEBUG | guration Updater | jetty
>> | service.jetty.internal.JCLLogger 85 | XML get handler
>> 01 Jun 2011 17:14:24,084 | WARN | guration Updater | jetty
>> | service.jetty.internal.JCLLogger 122 | Config error at<Call
>> name="addHandler">
>> <Arg>
>> <New class="org.mortbay.jetty.handler.RewriteHandler">
>> <Set name="rewriteRequestURI">true</Set>
>> <Set name="rewritePathInfo">false</Set>
>> <Set name="originalPathAttribute">requestedPath</Set>
>> <Call
>> name="addRewriteRule"><Arg>/designers</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/design</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/digui</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/home</Arg><Arg>/Designers/HomePage.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/index.html</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/pd</Arg><Arg>/Designers/ProcessDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/md</Arg><Arg>/Designers/MapDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/im</Arg><Arg>/Designers/IntegrationManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/admin</Arg><Arg>/Designers/Admin.html</Arg></Call>
>> </New>
>> </Arg>
>> </Call>
>> 01 Jun 2011 17:14:24,084 | WARN | guration Updater | jetty
>> | service.jetty.internal.JCLLogger 122 | Config error at<Get
>> id="Handler" name="handler">
>> <Call name="addHandler">
>> <Arg>
>> <New class="org.mortbay.jetty.handler.RewriteHandler">
>> <Set name="rewriteRequestURI">true</Set>
>> <Set name="rewritePathInfo">false</Set>
>> <Set name="originalPathAttribute">requestedPath</Set>
>> <Call
>> name="addRewriteRule"><Arg>/designers</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/design</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/digui</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/home</Arg><Arg>/Designers/HomePage.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/index.html</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/pd</Arg><Arg>/Designers/ProcessDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/md</Arg><Arg>/Designers/MapDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/im</Arg><Arg>/Designers/IntegrationManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/admin</Arg><Arg>/Designers/Admin.html</Arg></Call>
>> </New>
>> </Arg>
>> </Call>
>> </Get>
>> 01 Jun 2011 17:14:24,084 | ERROR | guration Updater | JettyServerImpl
>> | e.jetty.internal.JettyServerImpl 78 |
>> java.lang.IllegalArgumentException:<Call name="addHandler">
>> <Arg>
>> <New class="org.mortbay.jetty.handler.RewriteHandler">
>> <Set name="rewriteRequestURI">true</Set>
>> <Set name="rewritePathInfo">false</Set>
>> <Set name="originalPathAttribute">requestedPath</Set>
>> <Call
>> name="addRewriteRule"><Arg>/designers</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/design</Arg><Arg>/Designers/DesignManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/digui</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/home</Arg><Arg>/Designers/HomePage.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/index.html</Arg><Arg>/Designers</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/pd</Arg><Arg>/Designers/ProcessDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/md</Arg><Arg>/Designers/MapDesigner.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/im</Arg><Arg>/Designers/IntegrationManager.html</Arg></Call>
>> <Call
>> name="addRewriteRule"><Arg>/admin</Arg><Arg>/Designers/Admin.html</Arg></Call>
>> </New>
>> </Arg>
>> </Call>
>>
>> Thanks in advance for any pointers that can be provided.
>>
>> Troy Waldrep
>>
>>
>> _______________________________________________
>> general mailing list
>> [email protected]<mailto:[email protected]>
>> http://lists.ops4j.org/mailman/listinfo/general
>>
>>
>>
>>
>> _______________________________________________
>> general mailing list
>> [email protected]
>> http://lists.ops4j.org/mailman/listinfo/general
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general
>
>
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general