2011-01-13 3 views
2

Когда я использую jetty7 командную строку, сделать $ java -jar start.jar OPTIONS=default,rewrite etc/jetty-rewrite.xml использовать rewrite (org.eclipse.jetty.rewrite.handler.RewriteHandler).
Но jetty-maven-плагин и затмение и m2eclipse не могут использовать ОПЦИИ = по умолчанию, переписатьjetty: run.Как конфигурационный использовать «переписать» на молы-Maven-плагин

И ClassNotFoundException: org.eclipse.jetty.rewrite.handler.RewriteHandler происходит, несмотря на то, что я добавить

  • плагин Пристань-переписывают в pom.xml
  • <jettyEnvXml>foo.xml</jettyEnvXml> до pom.xml
  • библиотека jetty-write.

foo.xml записанная конфигурация для использования перезаписи.

Что мне делать с конфигурацией, чтобы использовать jetty-rewrite приложением jet-maven-plugin?

+0

Я сталкиваюсь с теми же проблемами. Кто-нибудь знает решение? – ajitomatix

ответ

2

Мне недавно пришлось решить ту же проблему, заставив Jetty 7 работать внутри Maven 3 и инициализировать с помощью правил перезаписи. Там просто два компонента: pom.xml, jetty.xml

Вот отрывок из pom.xml:

<profile> 
    <id>jetty</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>7.2.2.v20101205</version> 
       <configuration> 
        <jettyConfig>${project.basedir}/config/jetty7/jetty.xml</jettyConfig> 
        <webAppConfig> 
         <contextPath>/${project.artifactId}</contextPath> 
        </webAppConfig> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>org.eclipse.jetty</groupId> 
         <artifactId>jetty-http</artifactId> 
         <version>7.2.2.v20101205</version> 
         <type>jar</type> 
         <scope>runtime</scope> 
        </dependency> 
        <dependency> 
         <groupId>org.eclipse.jetty</groupId> 
         <artifactId>jetty-rewrite</artifactId> 
         <version>7.2.2.v20101205</version> 
         <type>jar</type> 
         <scope>runtime</scope> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

Вы заметите, что мы явно установить файл конфигурации Jetty. Этот файл должен соответствовать версии Jetty, которую вы используете. У нас были проблемы с другими стабильными версиями, и, таким образом, вы выбрали 7.2.2.v20101205, как вы можете видеть выше. Получив этот файл jetty.xml, вам нужно будет добавить следующий код в конец.

<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">true</Set> 
     <Set name="rewritePathInfo">false</Set> 
     <Set name="originalPathAttribute">requestedPath</Set> 
      <!-- Added for mainsite js tagging files --> 
     <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> 
    </New> 
</Set> 

Синтаксис для Jetty переписывает можно легко найти в Интернете, а также в файле и т.д./молы-rewrite.xml, которые будут упакованы в Jetty 7.x дегтя.

2

Мне тоже пришлось заняться этим, и, наконец, он работал, проведя целый день на нем.

Сообщение от Lanyon заставило меня начать, но не совсем сработало. Обратите внимание, что я не развертываю WAR-файл и не имею web.xml, я просто обслуживаю встроенный каталог «www».

Для всех, кто считает себя в этой ситуации, вот что работает для меня:

<profile> 
<id>jetty</id> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.2.1.v20140609</version> 
      <configuration> 
       <stopPort>9966</stopPort> 
       <stopKey>stopit</stopKey> 
       <webAppSourceDirectory>${project.build.directory}/www</webAppSourceDirectory> 
       <jettyConfig>${project.basedir}/jetty.xml,${project.basedir}/jetty-rewrite.xml</jettyConfig> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.eclipse.jetty</groupId> 
        <artifactId>jetty-rewrite</artifactId> 
        <version>9.2.1.v20140609</version> 
        <type>jar</type> 
        <scope>runtime</scope> 
       </dependency> 
       <dependency> 
        <groupId>org.eclipse.jetty</groupId> 
        <artifactId>jetty-http</artifactId> 
        <version>9.2.1.v20140609</version> 
        <type>jar</type> 
        <scope>runtime</scope> 
       </dependency> 
       <dependency> 
        <groupId>org.eclipse.jetty</groupId> 
        <artifactId>jetty-server</artifactId> 
        <version>9.2.1.v20140609</version> 
        <scope>runtime</scope> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 
</build> 

Самый большой stumbing блок для меня работал, что jettyConfig нужны оба эти конфигурационные файлы.

Я получил эти файлы, загрузив дистрибутив (точное соответствие): http://download.eclipse.org/jetty/ Извлек банку и нашел файлы в каталоге «etc».

Я только модифицировал jetty-rewrite.xml - примерное правило Lanyon, предоставленное выше, отлично работало.

Смежные вопросы