Jetty9用于url-rewrite

时间:2015-06-09 08:52:15

标签: java url-rewriting jetty-9

您好我正在使用jetty7进行网址重写,因此我根据网址http://wiki.eclipse.org/Jetty/Feature/Rewrite_Handler修改了我的jetty.xml文件 我正在使用intelij想法进行开发。

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

  <!-- redirect the response. This is a redirect which is visible to the browser.
       After the redirect, the browser address bar will show /redirected -->
  <Call name="addRule">
    <Arg>
      <New class="org.eclipse.jetty.rewrite.handler.RedirectPatternRule">
        <Set name="pattern">/redirect</Set>
        <Set name="location">/redirected</Set>
      </New>
    </Arg>
  </Call>

  <!-- This rewrites the base URL; supports Regex. This is visible to the browser. -->
  <Call name="addRule">
    <Arg>
      <New class="org.eclipse.jetty.rewrite.handler.RedirectRegexRule">
        <Set name="regex">(^(?!/base/path/).*)</Set>
        <Set name="replacement">/base/path/</Set>
      </New>
    </Arg>
  </Call>
</New>

  <!-- rewrite the request URI. This is an internal rewrite, visible to server,
       but the browser will still show /some/old/context -->
  <Call name="addRule">
    <Arg>
      <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
        <Set name="pattern">/some/old/context</Set>
        <Set name="replacement">/some/new/context</Set>
      </New>
    </Arg>
  </Call>

  <!-- reverse the order of the path sections. Internal rewrite -->
  <Call name="addRule">
    <Arg>
      <New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">
        <Set name="regex">/reverse/([^/]*)/(.*)</Set>
        <Set name="replacement">/reverse/$2/$1</Set>
      </New>
    </Arg>
  </Call>
</New>

 <!-- add the rewrite handler to the server -->
<Set name="handler"><Ref id="Rewrite" /></Set>

当我运行服务器时,我遇到了以下错误。 堆栈跟踪如下。

WARN:oejx.XmlConfiguration:Config error at <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">/redirect/\*</Set><Set name="location">/redirected</Set></New>|                </Arg></Call><Call name="addRule"><Arg>|                    <New class="org.eclipse.jetty.rewrite.handler.RedirectRegexRule"><Set name="regex">(^(?!/base/path/).*)</Set><Set name="replacement">/base/path/</Set></New>|                </Arg></Call><Call name="addRule"><Arg>|                    <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule"><Set name="pattern">/some/old/context</Set><Set name="replacement">/some/new/context</Set></New>|                </Arg></Call><Call name="addRule"><Arg>|                    <New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule"><Set name="regex">/reverse/([^/]*)/(.*)</Set><Set name="replacement">/reverse/$2/$1</Set></New>|                </Arg></Call></New> java.lang.ClassNotFoundException: 
   java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:473)
    at org.eclipse.jetty.start.Main.start(Main.java:615)
    at org.eclipse.jetty.start.Main.main(Main.java:96)
    Caused by:java.lang.ClassNotFoundException:org.eclipse.jetty.rewrite.handler.RewriteHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.eclipse.jetty.util.Loader.loadClass(Loader.java:100)
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:366)
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:767)
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:404)
    at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:355)
    at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:296)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1262)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1197)
    ...7more

    Usage:java-jar start.jar[options][properties][configs]
    java-jar start.jar--help  # for more information

0 个答案:

没有答案