Java 我该如何配置以使用;重写;通过jetty maven插件

Java 我该如何配置以使用;重写;通过jetty maven插件,java,jetty,maven-jetty-plugin,Java,Jetty,Maven Jetty Plugin,当我通过命令行使用jetty7时,执行$java-jar start.jar OPTIONS=default,rewrite etc/jetty rewrite.xml以使用rewrite(org.eclipse.jetty.rewrite.handler.RewriteHandler)。 但是jetty-maven插件和eclipse以及m2eclipse不能使用OPTIONS=default,重写byjetty:run 而ClassNotFoundException:org.eclipse.

当我通过命令行使用jetty7时,执行
$java-jar start.jar OPTIONS=default,rewrite etc/jetty rewrite.xml
以使用
rewrite
(org.eclipse.jetty.rewrite.handler.RewriteHandler)。
但是jetty-maven插件和eclipse以及m2eclipse不能使用OPTIONS=default,重写byjetty:run

ClassNotFoundException:org.eclipse.jetty.rewrite.handler.RewriteHandler尽管我添加了

  • 插件将jetty重写为pom.xml
  • foo.xml
    到pom.xml
  • jetty write
xml是使用重写编写的配置


要使用jetty maven插件的jetty rewrite,我应该如何配置?

我最近不得不解决同样的问题,让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>

码头
org.mortbay.jetty
jetty maven插件
7.2.2.v20101205
${project.basedir}/config/jetty7/jetty.xml
/${project.artifactId}
10
org.eclipse.jetty
jetty http
7.2.2.v20101205
罐子
运行时
org.eclipse.jetty
码头重写
7.2.2.v20101205
罐子
运行时
您会注意到,我们已经显式地设置了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文件中找到,该文件将打包在Jetty 7.x tar中。

我也不得不解决这个问题,在花了一整天的时间之后,终于让它工作起来了

拉尼恩的帖子让我开始了学习,但效果不太好。请注意,我没有部署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>

码头
org.eclipse.jetty
提取jar并在“etc”目录中找到文件


我只修改了jetty-rewrite.xml-上面提供的示例规则Lanyon非常有效。

我遇到了同样的问题。有人知道解决办法吗?