[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[jetty-users] rewrite rules
|
I am trying to get some rewrite rules to weork. This is an
application I had running well under Jetty 8 (using the Ubuntu 12.04
default installation) but I am stymied trying to bring it to Jetty 9.
I have rewrite rules configured in a Configureation file (listed below in full)
It appears that my rewrite rule is matching, the rewrite occurs and
then I hit a NullPointerException while trying to end the rewrite
portion.
Any thoughts?
The relevant logs
====
2014-04-22 18:06:57.891:DBUG:oejrh.RuleContainer:qtp1365786638-16 -
/v2/111/users/current: applied
org.eclipse.jetty.rewrite.handler.RewriteRegexRule[hT][^/v2/(.*)][/webdir/index.php]
2014-04-22 18:06:57.891:DBUG:oejrh.RuleContainer:qtp1365786638-16 -
/v2/111/users/current: rewrote /v2/111/users/current to
/webdir/index.php
2014-04-22 18:06:57.892:DBUG:oejrh.RuleContainer:qtp1365786638-16 -
/v2/111/users/current: terminating
org.eclipse.jetty.rewrite.handler.RewriteRegexRule[hT][^/v2/(.*)][/webdir/index.php]
2014-04-22 18:06:57.892:DBUG:oejrh.RuleContainer:qtp1365786638-16 -
/v2/111/users/current: applied
org.eclipse.jetty.rewrite.handler.VirtualHostRuleContainer[ht]
2014-04-22 18:06:57.892:DBUG:oejrh.RuleContainer:qtp1365786638-16 -
/v2/111/users/current: rewrote /v2/111/users/current to
/webdir/index.php
2014-04-22 18:06:57.893:WARN:oejs.HttpChannel:qtp1365786638-16 -
/v2/111/users/current: /v2/111/users/current
java.lang.NullPointerException
at org.eclipse.jetty.rewrite.handler.RuleContainer.apply(RuleContainer.java:201)
at org.eclipse.jetty.rewrite.handler.RuleContainer.matchAndApply(RuleContainer.java:188)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:305)
at org.eclipse.jetty.server.handler.DebugHandler.handle(DebugHandler.java:81)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:309)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:462)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
at java.lang.Thread.run(Thread.java:744)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Get id="_oldhandler" name="handler" />
<Set name="handler">
<New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
<Set name="handler"><Ref id="_oldhandler" /></Set>
<Set name="rewriteRequestURI">false</Set>
<Set name="rewritePathInfo">false</Set>
<Set name="originalPathAttribute">requestedPath</Set>
<!-- rules that apply across all virtual hosts -->
<Call name="addRule">
<Arg>
<!-- attempt tofix broken MS shit -->
<New class="org.eclipse.jetty.rewrite.handler.MsieSslRule" />
</Arg>
</Call>
<!-- vfcore -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/admin/(.*)</Set>
<Set name="replacement">/webdir/index.php</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/oauth2/(.*)</Set>
<Set name="replacement">/webdir/index.php</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/([0-9]+)/(.*)</Set>
<Set name="replacement">/$2</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<!-- rules that apply only to the api subdomain -->
<Call name="addRule">
<Arg>
<New id="api-virtualHost"
class="org.eclipse.jetty.rewrite.handler.VirtualHostRuleContainer">
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item>api.viafoura.com</Item>
</Array>
</Set>
<!-- from nginx/sites-avilable-api -->
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/api/1/(.*)</Set>
<Set name="replacement">/webdir/index.php</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/rest/v1/(.*)</Set>
<Set name="replacement">/webdir/index.php</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
<Set name="regex">^/v2/(.*)</Set>
<Set name="replacement">/webdir/index.php</Set>
<Set name="terminating">true</Set>
</New>
</Arg>
</Call>
<Call name="addRule">
<Arg>
<New class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
<Set name="pattern">^/app/js/</Set>
<Set name="name">ETag</Set>
<Set name="value"> </Set>
</New>
</Arg>
</Call>
</New>
</Arg>
</Call>
</New>
</Set>
</Configure>
--
- michael dykman
- mdykman@xxxxxxxxx
May the Source be with you.