2016-08-10 5 views
0

Я тестирую функцию перезаписи Причал 9, пытаясь переписать следующий URL:Как настроить обработчик перезаписи URL-адресов Jetty?

http://localhost/rewrite к http://localhost/test.html

Вот моя конфигурация:

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 

    <New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler"> 
     <Set name="handler"><Ref refid="oldhandler"/></Set> 
     <Set name="rewriteRequestURI"><Property name="jetty.rewrite.rewriteRequestURI" deprecated="rewrite.rewriteRequestURI" default="true"/></Set> 
     <Set name="rewritePathInfo"><Property name="jetty.rewrite.rewritePathInfo" deprecated="rewrite.rewritePathInfo" default="false"/></Set> 
     <Set name="originalPathAttribute"><Property name="jetty.rewrite.originalPathAttribute" deprecated="rewrite.originalPathAttribute" default="requestedPath"/></Set> 

     <!-- Set DispatcherTypes --> 
     <Set name="dispatcherTypes"> 
     <Array type="javax.servlet.DispatcherType"> 
      <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>REQUEST</Arg></Call></Item> 
      <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>ASYNC</Arg></Call></Item> 
     </Array> 
     </Set> 

     <Call name="addRule"> 
     <Arg> 
      <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule"> 
      <Set name="pattern">/rewrite</Set> 
      <Set name="replacement">/test.html</Set> 
      </New> 
     </Arg> 
     </Call> 
    </New> 

    ... 

</Configure> 

Открытие http://127.0.0.1/test.html в браузере работает, но http://localhost/rewrite дает мне ошибку 404.
Я настроил это неправильно?

ответ

0

я должен был выполнить:

java -jar start.jar --add-to-startd=rewrite 

Изменить jetty-rewrite.xml вместо jetty.xml:

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd"> 

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 

    <!-- =========================================================== --> 
    <!-- configure rewrite handler         --> 
    <!-- =========================================================== --> 
    <Call name="insertHandler"> 
    <Arg> 
     <New class="org.eclipse.jetty.rewrite.handler.RewriteHandler"> 
    <Set name="rewriteRequestURI"><Property name="jetty.rewrite.rewriteRequestURI" deprecated="rewrite.rewriteRequestURI" default="true"/></Set> 
    <Set name="rewritePathInfo"><Property name="jetty.rewrite.rewritePathInfo" deprecated="rewrite.rewritePathInfo" default="false"/></Set> 
    <Set name="originalPathAttribute"><Property name="jetty.rewrite.originalPathAttribute" deprecated="rewrite.originalPathAttribute" default="requestedPath"/></Set> 

    <!-- Set DispatcherTypes --> 
    <Set name="dispatcherTypes"> 
     <Array type="javax.servlet.DispatcherType"> 
     <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>REQUEST</Arg></Call></Item> 
     <Item><Call class="javax.servlet.DispatcherType" name="valueOf"><Arg>ASYNC</Arg></Call></Item> 
     </Array> 
    </Set> 

     <Get id="Rewrite" name="ruleContainer"/> 

    <!-- see rewrite-compactpath.xml for example how to add a rule --> 
    <Call name="addRule"> 
     <Arg> 
      <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule"> 
      <Set name="pattern">/rewrite/test.html</Set> 
      <Set name="replacement">/test/test.html</Set> 
      </New> 
     </Arg> 
     </Call> 

     </New> 
    </Arg> 
    </Call> 
</Configure> 
Смежные вопросы