为了账号安全,请及时绑定邮箱和手机立即绑定

Jetty使用总结

标签:
MySQL


配置指南:http://blog.csdn.net/ph9527/article/details/5063157

1、Jetty的配置参数

 关于其他命令的更多信息请查阅Jetty文档中的mvn jetty:run page、mvn jetty:run-exploded page、mvn jetty:run-war page。

自动执行插件

   有时候,例如在做集成测试时,你当然希望在测试开始时自动运行你的项目,测试完成时停止,而不只是手动的在命令行执行mvn jetty:run吧。

   要做到这一点,你需要为jetty 插件创建几个<execution>脚本,并使用<daemon>true</daemon>配置选项来预防Jetty无限期运行,迫使它只在执行Maven时才运行。

  像下面pom.xml片段中描述的pre-integration-test和post-integration-test 就是用来触发执行和关闭Jetty:

<plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

        <version>6.1.10</version>

        <configuration>

                <scanIntervalSeconds>10</scanIntervalSeconds>

                <stopKey>foo</stopKey>

                <stopPort>9999</stopPort>

        </configuration>

        <executions>

                <execution>

                        <id>start-jetty</id>

                        <phase>pre-integration-test</phase>

                        <goals>

                                <goal>run</goal>

                        </goals>

                        <configuration>

                                <scanIntervalSeconds>0</scanIntervalSeconds>

                                <daemon>true</daemon>

                        </configuration>

                </execution>

                <execution>

                        <id>stop-jetty</id>

                        <phase>post-integration-test</phase>

                        <goals>

                                <goal>stop</goal>

                        </goals>

                </execution>

        </executions>

</plugin>

 

         注意:Maven默认都是通过org.apache.maven.plugins的groupId来查找插件的,即使这个groupId跟上面要表达的内容完全不同。为了更明确的指向这个groupId是我们需要的插件,唯一的办法就是在settings.xml也做如下设置:

       <profile>

                 ...

                                       <pluginGroups>

                                         <pluginGroup>org.mortbay.jetty</pluginGroup>

                                       </pluginGroups>

</profile>

 

如何通过命令行停止插件

  委托Jetty插件无限期运行的目标包括run、run-war和run-exploded。你可以在视窗控制终端(如DOS窗口)使用<ctrl-c>关闭它,或者在另一个视窗控制终端使用stop目标关闭。如果你希望能使用mvn jetty:stop 执行关闭命令,则需要你在插件中配置一个特殊的端口和控制键。下面是一个例子配置:

<plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

        <version>6.1.10</version>

        <configuration>

          <stopPort>9966</stopPort>

          <stopKey>foo</stopKey>

        </configuration>

</plugin>

开始:

mvn jetty:start

关闭:

mvn jetty:stop

 

2、为Maven jetty插件(maven-jetty-plugin)配置数据源

在使用jetty插件调试maven war项目时,我们可能需要为servlet容器(这里是jetty)配置一个数据源。下面介绍如何为jetty插件配置数据源。 

1. 在src/main/resources目录下创建jetty-env.xml文件,用来配置数据源,文件内容如下: 

Xml代码 

<?xml version="1.0" encoding="utf-8"?>  

<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"  

"http://jetty.mortbay.org/configure.dtd">  

<Configure class="org.mortbay.jetty.webapp.WebAppContext">  

    <New id="dataSource" class="org.mortbay.jetty.plus.naming.Resource">  

        <Arg>jdbc/osworkflow</Arg>  

        <Arg>  

            <New class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">  

                <Set name="url">jdbc:mysql://localhost:3306/osworkflow?useUnicode=true&characterEncoding=UTF-8</Set>  

                <Set name="user">root</Set>  

                <Set name="password"></Set>  

            </New>  

        </Arg>  

    </New>  

</Configure>  

2. 在配置jetty插件时,指定这个数据源配置文件: 

Xml代码 

<plugins>  

    <!- jetty ->  

    <plugin>  

        <groupId>org.mortbay.jetty</groupId>  

        <artifactId>maven-jetty-plugin</artifactId>  

        <version>6.1.9</version>  

        <configuration>  

            <scanIntervalSeconds>10</scanIntervalSeconds>  

            <jettyEnvXml>src/main/resources/jetty-env.xml</jettyEnvXml>  

        </configuration>  

    </plugin>  

</plugins>  

3. 测试。在index.jsp中进行如下测试: 

Jsp代码 

<%@ page contentType="text/html; charset=UTF-8"%>  

<%@ page import="javax.naming.InitialContext,javax.sql.DataSource"%>  

<html>  

<head>  

<title>JNDI datasource test</title>  

</head>  

<body>  

<h2>数据源初始化成功!</h2>  

<%  

    InitialContext context = new InitialContext();  

    DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/osworkflow");  

%>  

</body>  

</html>  

 4、Jetty中配置根目录启动应用,不再需要输入工程名称

<configuration> 

                    <contextPath>/</contextPath> 

                </configuration> 

完整版本:

<jetty-version>6.1.22</jetty-version> 

 

  <plugin> 

                <groupId>org.mortbay.jetty</groupId> 

                <artifactId>maven-jetty-plugin</artifactId> 

                <version>${jetty-version}</version> 

                <configuration> 

                    <contextPath>/</contextPath> 

                    <connectors> 

                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 

                            <port>8081</port> 

                            <maxIdleTime>60000</maxIdleTime> 

                        </connector> 

                    </connectors> 

                    <requestLog implementation="org.mortbay.jetty.NCSARequestLog"> 

                        <filename>target/access.log</filename> 

                        <retainDays>90</retainDays> 

                        <append>false</append> 

                        <extended>false</extended> 

                        <logTimeZone>GMT+8:00</logTimeZone> 

                    </requestLog> 

                    <systemProperties> 

                        <systemProperty> 

                            <name>productionMode</name> 

                            <value>false</value> 

                        </systemProperty> 

                    </systemProperties> 

                </configuration> 

            </plugin> 

 5、Jetty Debug

方式1:set MAVEN_OPTS =-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

 

方式2:mvndebug jetty:run

 

 

 

 

 

 

©著作权归作者所有:来自51CTO博客作者tianya23的原创作品,如需转载,请注明出处,否则将追究法律责任

职场休闲jettyAnt & Maven


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消