Как мне настроить "переписать" с помощью jetty-maven-plugin - PullRequest
2 голосов
/ 13 января 2011

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

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

  • плагин jetty-rewrite в pom.xml
  • <jettyEnvXml>foo.xml</jettyEnvXml> до pom.xml
  • библиотека jetty-write .

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

Как мне настроить, чтобы использовать jetty-rewrite by jetty-maven-plugin?

Ответы [ 2 ]

2 голосов
/ 04 июля 2014

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

Пост от 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>

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

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

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

2 голосов
/ 17 мая 2011

Мне недавно пришлось решить ту же проблему, заставив 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 можно легко найти в Интернете, а также в файле etc / jetty-rewrite.xml, который будет упакован в tar-архив Jetty 7.x.

...