zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Xcode编译WebDriverAgentRunner报错:The bundle identifier for IntegrationApp.app couldn’t be read.解决方案
    python+django更新表结构执行相关命令报错:No installed app with label 'interface_crud'解决方案
    python激活虚拟环境env报错:no such file or directory: env/Scripts/activate解决方案
    Django创建api_crud app时报错:file "manage.py", line 16 ) from exc ^ SyntaxError: invalid syntax解决方案
    Redis未授权访问漏洞复现
    逻辑漏洞小结之SRC篇
    Linux下清空用户登录记录和命令历史的方法
    linux下直接清空日志的方法
    Linux Hackers/Suspicious Account Detection
    linux查看所有用户信息
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/4123054.html
Copyright © 2011-2022 走看看