在maven中配置jetty

pom.xml

<build>
        <finalName>/xxx</finalName>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.9.v20130131</version>
                <configuration>
                    <webApp>
                        <contextPath>/xxx</contextPath>
                    </webApp>
                    <connectors>
                        <connector implementation="org.eclipse.jetty.server.bio.SocketConnector">
                            <port>8081</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                        <connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector">
                            <port>8443</port>
                            <maxIdleTime>60000</maxIdleTime>
                            <password>123456</password>
                            <keyPassword>123456</keyPassword>
                            <keystore>${project.basedir}/src/test/resources/jetty.keystore</keystore>
                        </connector>
                    </connectors>
                    <systemProperties>
                        <systemProperty>
                            <!--一般服务器默认是ISO-8859-1编码-->
                            <name>org.mortbay.util.URI.charset</name>
                            <value>ISO-8859-1</value>
                        </systemProperty>
                    </systemProperties>
                    <!-- 从8.x开始,如果你的web项目中不包含数据库访问(或者说没有事务管理器)的话,在其启动时会提示找不到事务管理器
                     启动过程会暂停十几秒,在反复调试代码时很浪费时间,因此加入如下的配置,这个配置文件没有其他用处-->
                    <contextXml>${project.basedir}/src/test/resources/jetty-context.xml</contextXml>
                </configuration>
            </plugin>

            <!-- 密钥库生成器 也可以使用jdk keytool.exe生成密钥库-->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>keytool-maven-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <phase>generate-resources</phase>
                        <id>clean</id>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                    <execution>
                        <phase>generate-resources</phase>
                        <id>genkey</id>
                        <goals>
                            <goal>generateKeyPair</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <keystore>${project.basedir}/src/test/resources/jetty.keystore</keystore>
                    <dname>CN=xxx,OU=xxx,O=xxx,L=xxx,ST=xxx,C=cn</dname>
                    <keypass>123456</keypass>
                    <storepass>123456</storepass>
                    <alias>jetty8</alias>
                    <keyalg>RSA</keyalg>
                </configuration>
            </plugin>
        </plugins>
    </build>

jetty-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Call name="setAttribute">
        <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
        <Arg>.*/.*jsp-api-[^/]\.jar$|./.*jsp-[^/]\.jar$|./.*taglibs[^/]*\.jar$</Arg>
    </Call>
</Configure>

注意:

1、jetty 9.0以后就不能直接配置在pom文件中。

2、jetty的keystore需要指定RSA算法。

3、每次编译的时候,keytool-maven-plugin都会重新生成keystore,所以,可以再生成keystore后删除这个插件配置。

4、org.eclipse.jetty.server.bio.SocketConnector和org.eclipse.jetty.server.ssl.SslSocketConnector不会锁定资源文件(html、css、js、图片等),但是org.eclipse.jetty.server.nio.SelectChannelConnector和org.eclipse.jetty.server.ssl.SslSelectChannelConnector会锁定资源文件,两者是表示http和https的connector.

时间: 2024-08-02 22:03:39

在maven中配置jetty的相关文章

在idea中配置jetty

第一步:在pom.xml中配置jetty插件 <plugins> <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version> <configuration> <webAppSou

如何在Maven中配置Spring依赖

如何在Maven中配置Spring依赖 *前言: 这篇文章讨论了如何在Maven配置Spring的一些细节,这里介绍了一些主要的Maven依赖管理内容,当然还存在一些没有讨论到的内容,不过这篇文章应该是在项目中使用Spring的一个好的起点.最新的Spring发布版可以在Maven仓库中找到.* 在Maven中Spring的基础配置 Spring是高度模块化的,可以单独使用Spring的某个库而不需要依赖Spring的其他库.比如,使用Spring Context库不需要依赖Spring Per

Maven中使用Jetty容器

1.在pom.xml中添加Jetty的插件 <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.5</version> <configuration> <!-- webdefault.xml中将useFileMappedBuffer设置为false即可在

maven中配置jboss仓库

有两种方式,一种是在项目的pom.xml中<repositories>中添加,这是配置是针对具体的某一个项目,更多时候,我们想把jboss仓库作为所有项目的仓库,这就需要在maven的setting.xml中配置了.建议将maven/conf/setting.xml文件拷贝一份到你本地仓库的目录,作为用户配置文件.打开setting.xml文件,在里面添加一下内容: ... <profiles> ... <profile> <id>jboss-public-

Maven 中配置 Urlrewrite 基本配置

1. 在maven项目的pom.xml文件里加入: <!-- URL Rewrite --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>3.1.0</version> </dependency> 3.在WEB项目的web.xml里加上urlrewrite的

在Maven中配置Spring+Hibernate Shiro权限控制项目

前言:在Eclipse中安装好Maven插件,然后创建一个Simple项目.在Eclipse中检出Shiro的官方示例,地址http://svn.apache.org/repos/asf/shiro/trunk/samples/,参考spring-hibernate项目配置.由于之前对Maven的认识不足所以今天专门配置来了解其工作机制,下面是我按照SVN上配置的示例. 1.创建Maven项目并复制配置文件 如图所示: 注:文件的位置与官网示例一致. 2.配置pom.xml文件 <project

Maven中添加Jetty服务器配置

<project> <!--其它配置--> <build> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version> <configuration> <scanInt

eclipse中配置jetty服务的端口的方法之一

一般用jetty起服务时,默认端口时80,会经常跟上网的端口发生冲突. 所以需要手动改动端口号,下面时如何改变端口号: 1.点击Eclipse中Run Configurations,弹出窗口,如下图 2.选择左侧java application新建一个application 3.建完application后,选择arguments选项卡,在propram arguments中输入端口号

Maven中配置maven-compiler-plugin插件

这个插件就如同名字所显示的这样,用来编译源代码的. 加载第三方包 <dependency> <groupId>cn.eshore.bnet</groupId> <artifactId>UDBClient</artifactId> <version>1.0-SNAPSHOT</version> <scope>system</scope> <systemPath>${basedir}/lib