eclipse/intellij Idea集成jetty

jetty相对weblogic、jboss、tomcat而言,启动速度快,十分方便开发调试,以下是eclipse里的使用步骤:

一、eclipse->Marketplace里搜索 jetty

一路Next安装

二、eclipse里run as -> run jetty

最后指出jetty的一个bug:

struts2+jetty运行时,web.xml中<welcome-file-list>...</welcome-file-list>指定的起始页,不管怎么设置,死活不起作用,解决办法:

    <!-- 指定首页,解决struts2+jetty首页失效的问题 -->
    <package name="home" namespace="/" extends="struts-default">  
       <default-action-ref name="index" />  
       <action name="index" >  
           <result name="success">/index.htm</result>  
       </action>  
    </package> 

在struts.xml中加入这一坨就行了,但要注意,在使用convention-plugin、rest-plugin插件的情况下,有时会造成浏览器里url无限循环跳转的情况。

附:

a) 手动启用jetty的方式 %jetty_home%目录下 java -jar start.jar 即可

b) 手动部署 %jetty_home%\webapps 目录,把war扔进去就可以了

c) 调整PermSize内存大小,%jetty_home%\start.ini文件打开,添加

-XX:PermSize=256m -XX:MaxPermSize=512m

至于intellij idea,最方便的方式就是使用jetty-maven-plugin

 1             <plugin>
 2                 <groupId>org.mortbay.jetty</groupId>
 3                 <artifactId>jetty-maven-plugin</artifactId>
 4                 <version>8.1.15.v20140411</version>
 5                 <configuration>
 6                     <stopKey>exit</stopKey>
 7                     <stopPort>9090</stopPort>
 8                     <scanIntervalSeconds>10</scanIntervalSeconds>
 9                     <webAppConfig>
10                         <contextPath>/awbprint</contextPath>
11                     </webAppConfig>
12                 </configuration>
13             </plugin>

在pom.xml里添加这个后,左侧的plugin面板里,就直接出来N多选项

直接点击对应的节点就行了,比如点击“jetty:start”,就直接启用jetty了。

当然也可以针对某个项目,定制一个运行/调试的配置

在下面的对话框里,Command Line里输入jetty:start

如果项目依赖的jar包很多,运行不久后,很容易出现内存不足,可以手动把内存调大一点

最后送二个小技巧:

1)plugin方式下,如何调整启动的端口号

<plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>${maven-jetty-plugin_version}</version>
                <configuration>
                    <connectors>
                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                            <port>8080</port>
                        </connector>
                    </connectors>
                    <stopKey>exit</stopKey>
                    <stopPort>9090</stopPort>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <webAppConfig>
                        <contextPath>/${project.artifactId}</contextPath>
                        <!--<contextPath>/</contextPath>-->
                    </webAppConfig>
                </configuration>
            </plugin>

connector节点下的port即是启动端口

注:如果采用最新的9.3.x版本,上面的配置将提示错误,可参考下面的配置

 1                     <plugin>
 2                         <groupId>org.eclipse.jetty</groupId>
 3                         <artifactId>jetty-maven-plugin</artifactId>
 4                         <version>9.3.9.v20160517</version>
 5                         <configuration>
 6                             <httpConnector>
 7                                 <port>8180</port>
 8                             </httpConnector>
 9                             <scanIntervalSeconds>10</scanIntervalSeconds>
10                             <webAppConfig>
11                                 <contextPath>/</contextPath>
12                             </webAppConfig>
13                         </configuration>
14                     </plugin>

更多该插件的参数,可参考官网文档

2)jetty独立部署时,如何修改contextPath?

在WEB-INF/放一个jetty-web.xml文件,参考以下内容:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/</Set>
 </Configure>

参考文章:

http://www.eclipse.org/jetty/documentation/current/configuring-contexts.html#setting-context-path

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

Tomcat优化之配置线程池

简介 线程池作为提高程序处理数据能力的一种方案,应用非常广泛。大量的服务器都或多或少的使用到了线程池技术,不管是用Java还是C++实现,线程池都有如下的特点:...

37280
来自专栏北京马哥教育

出了Linux 故障找不到方法?看大牛简单、朴实的解决思路

本文由马哥教育Linux云计算面授班23期学员推荐,转载自互联网,作者为Lis,Linux资深技术专家,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛...

46760
来自专栏安富莱嵌入式技术分享

【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作。

14910
来自专栏钟绍威的专栏

linux常用命令之压缩打包用法选项DEMO注意选项DEMO用法选项用法选项DEMO

DF df – report file system disk space usage 查看文件系统的使用清空 用法 df [-hi] [path]选项-h h...

23490
来自专栏CDA数据分析师

工具 | 当python爬虫遇到10060错误

相信做过网站爬虫工作的同学都知道,python的urllib2用起来很方便,使用以下几行代码就可以轻松拿到某个网站的源码: ? 最后通过一定的正则匹配,解析返回...

26290
来自专栏张首富-小白的成长历程

Linux软件包安装--三魔鬼

yum是基于rpm的软件包管理器,他可以使系统管理人员交互和自动化地更细与管理rpm包,他能自动从服务器下载RPM包并安装,他可以自动处理依赖关系,自动安装所有...

36120
来自专栏云计算教程系列

如何使用RabbitMQ和Python的Puka为多个用户提供消息

只有在安装和配置软件后,才能使用RabbitMQ发送和接收消息,安装教程可以参考CentOS安装RabbitMQ的教程。

17340
来自专栏程序员互动联盟

【专业技术】arm中的7种执行模式

嵌入式设备已经越来越与我们的日常生活密切相关了,由此带来了ARM的高速发展。就拿我们的手机来说吧,几乎所有的手机都是ARM体系的。这里大致介绍下ARM 的7种执...

42490
来自专栏wblearn

我的Github之Pull request的使用

GitHub已经成为的一切开放源码软件的基石。开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目。除了​​代码托管,GitHub的主要吸引力是使用它...

13320
来自专栏同步博客

Git服务器搭建

  Git是目前世界使用最广泛的分布式版本控制系统,它是由林纳斯·托瓦兹(Linus Torvalds)创作,最初的目的是为了更好地管理Linux内核开发而设计...

46530

扫码关注云+社区

领取腾讯云代金券