Java 我该如何配置以使用;重写;通过jetty maven插件
当我通过命令行使用jetty7时,执行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.
$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
到pom.xmlfoo.xml
- 库jetty write
要使用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非常有效。我遇到了同样的问题。有人知道解决办法吗?