Skip to main content

[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.


Back to the top