精华内容
下载资源
问答
  • Jetty部署WEB项目

    千次阅读 2019-05-03 11:08:18
    各位读者,五一快乐! 我们微服务用Tomcat部署,部分服务...二、如何用Jetty部署? 三、总结 一、为何不热部署? 怎么办呢? 1、热部署 2、换一种方式部署——Jetty. 热部署:热部署,有的项目行得通,我们的项目基...

    各位读者,五一快乐!

    我们微服务用Tomcat部署,部分服务比如bdc服务部署起来非常慢,至少要2-4分钟吧。如果你修复Bug效率不是很高,DEbug几下,每次都要重新部署,非常忧心啊…目的:加快启动速度。

    目录


    一、为何不热部署?
    二、如何用Jetty部署?
    三、总结


    一、为何不热部署?

    怎么办呢?

    1、热部署
    2、换一种方式部署——Jetty.

    热部署:热部署,有的项目行得通,我们的项目基本行不通。不是行不通,只是这么做带来的问题还不如重启呢。在Idea中如何实现所谓的“热部署”这里不再赘述,无非就是:
    1)不部署.war包,而是部署.war(explored);

    在这里插入图片描述
    2)配置页选择:upload classes and resources
    在这里插入图片描述
    实践证明这么做,对于我们的项目行不通。采访了架构师、经理以及同样适用IDEA的小伙伴们,大家也都没有采用热部署。架构师说了,我们的项目使用热部署不合适,会有其他细节问题。建议我采用Jetty部署。

    二、如何用Jetty部署?

    使用Jetty热部署,主要是加快服务启动速度,修复一个NPE问题不到1分钟,启动4分钟,不是很头疼嘛?尤其在前端看着你修改的前提下…

    我们先不纠结什么是Jetty,为什么用它,它和Tomcat的区别?后期会做详细介绍,这里先用起来再说。
    大体还是要知道Jetty是什么的,官网这么说:

    Jetty is an open-source project providing an HTTP server, HTTP client, and javax.servlet container.
    所以很明白了,部署方式和Tomcat类似。

    1)下载Jetty,就类似下载Tomcat一样。
    在下使用的是:jetty-9.4.16
    目录结构如下:

    dzjdeMacBook-Air:jetty-9.4.16 dzj$ ls -l
    total 1552
    -rw-r--r--    1 dzj  admin    1637  4 18 14:37 README.TXT
    -rw-r--r--    1 dzj  admin  517811  4 18 14:37 VERSION.txt
    drwxr-xr-x    3 dzj  admin      96  5  2 22:29 bin
    drwxr-xr-x    7 dzj  admin     224  4 18 14:37 demo-base
    drwxr-xr-x    4 dzj  admin     128  5  2 10:20 dubbo-registry
    -rw-r--r--    1 dzj  admin   56246  5  3 09:21 dzj.log
    drwxr-xr-x   60 dzj  admin    1920  4 18 14:37 etc
    drwxr-xr-x   51 dzj  admin    1632  4 18 14:37 lib
    -rw-r--r--    1 dzj  admin   30012  4 18 14:37 license-eplv10-aslv20.html
    drwxr-xr-x    3 dzj  admin      96  4 18 14:37 logs
    drwxr-xr-x  136 dzj  admin    4352  5  2 22:27 modules
    -rw-r--r--@   1 dzj  admin    6262  4 18 14:37 notice.html
    drwxr-xr-x    2 dzj  admin      64  4 18 14:37 resources
    -rw-r--r--    1 dzj  admin    5469  5  2 10:17 start.ini
    -rw-r--r--    1 dzj  admin  160627  4 18 14:37 start.jar
    drwxr-xr-x    3 dzj  admin      96  5  2 22:31 webapps
    

    结构蛮简单。start.ini是初始化配置文件,类似MySQL的初始化文件,都是.ini结尾。
    start.jar可以直接在command行运行(参考官方文档)

    java -jar start.jar
    

    运行后,如果端口冲突就去start.ini中修改端口号即可。

    demo-base:中放了一些案例。
    其他目录一看即懂,不在赘述。

    2)在IDE中添加Jetty Server
    我用的是:IDEA。
    Run ==》 Edit Configurations ==>+

    3)接下来基本和Tomcat一模一样。添加Local。网上资料很多,不在赘述。

    遇到的问题是:

    1、需要指定启动的module

    在start.ini中增加一行:

    --module=jmx
    

    或者通过命令行方式:

    $ cd ${jetty.base}
    $ java -jar {$jetty.home}/start.jar --add-to-start=jmx
    

    为什么这么指定呢?
    官网说的很清楚:

    https://www.eclipse.org/jetty/documentation/current/jmx-chapter.html

    1、JMX很重要
    The Java Management Extensions (JMX) API is a standard API for managing and monitoring resources such as applications, devices, services, and the Java virtual machine.
    
    Typical uses of the JMX technology include:
    
    Consulting and changing application configuration
    Accumulating and making available statistics about application behavior
    Notifying of state changes and erroneous conditions
    The JMX API includes remote access, so a remote management program can interact with a running application for these purposes.
    
    2、JMX在架构中必不可少,是所有运行的基础
    
    
    Jetty’s architecture is based on POJO components (see Jetty Architecture). These components are organized in a tree and each component may have a lifecycle that spans the Server lifetime, or a web application lifetime, or even shorter lifetimes such as that of a TCP connection.
    
    Every time a component is added or removed from the component tree, an event is emitted, and Container.Listener implementations can listen to those events and perform additional actions.
    
    One such Container.Listener is MBeanContainer that uses ObjectMBean to create an MBean from an arbitrary POJO, and register/unregister the MBean to/from the platform MBeanServer.
    
    Jetty components are annotated with Jetty JMX Annotations and provide specific JMX details so that ObjectMBean can build a more precise representation of the JMX metadata associated with the component POJO.
    
    
    
    

    Standalone Jetty Server
    JMX is not enabled by default in the Jetty distribution. To enable JMX in the Jetty distribution run the following, where {$jetty.home} is the directory where you have the Jetty distribution installed, and ${jetty.base} is the directory where you have your Jetty configuration (see the documentation for Jetty base vs. home examples):

    $ cd ${jetty.base}
    $ java -jar {$jetty.home}/start.jar --add-to-start=jmx
    

    Running the above command will append the available configurable elements of the jmx module to the {$jetty.base}/start.ini file, or create the ${jetty.base}/start.d/jmx.ini file.

    用命令行模式追加好处在哪里呢?

    因为命令行模式很标准。让100000个人操作的结果都是一样的,当时你说修改文档,那么很多人:
    1)不知道该加到哪里
    2)有可能一不小心动了别的地方,对不对?

    2、无法再GUI界面修改Jetty端口号

    即便在VM Options中指定-Djetty.port=xxxx也不顶用。
    结论:通过这种方式指定端口号不生效。
    所以,很简单了,去stat.ini中修改端口号,方法类似修改tomcat的server.xml。
    我们都知道Tomcat默认有3个端口:一个关闭端口,一个AJP端口,一个HTTP端口,默认8080,修改这个即可。同理,start.ini中修改HTTP端口即可。

    jetty.http.port=8081
    

    3、需要插件么?
    网上说需要给Idea安装Jetty插件,安装了感觉没卵用。

    在这里插入图片描述

    4、服务启动速度并没有加快。
    这无疑是最遗憾的了。看了这么多文档,却没有一个骄傲的结果。

    Tomcat Jettty
    4min 4min

    我希望Jetty可以在1min中内启动,然而…,所有能想到影响启动的地方都改进了:去除了所有的Break Points等等,为什么没能加快启动速度?暂且搁置。

    好了,到这里了,童鞋们,下课休息一会。下一篇:我们该思考,Jetty和Tomcat区别?各自应用场景?到底怎么用才能感受到彼此差别?有非常明确的案例么?

    展开全文
  • ![图片说明]... 如图,这个界面可以打开,链接后面再添加项目名称就 无法打开。 ... 我是直接把war包放置再webapps目录下,jetty好像没有自动部署,目录下还是我上传上去的文件,没有发现解压出来。
  • idea+jetty部署web项目

    2021-04-08 10:05:34
    Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。 Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。 开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些...

    jetty简介

    Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。 Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。 开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

    jetty特性

    • 易用性是 Jetty 设计的基本原则。 通过 XML 或者 API 来对Jetty进行配置;默认配置可以满足大部分的需求,将 Jetty 嵌入到应用程序当中只需要非常少的代码。
    • 可扩展性,在 Jetty 的某种实现无法满足用户的需要时,用户可以非常方便地对 Jetty 的某些实现进行修改,使得 Jetty 适用于特殊的应用程序的需求。
    • 易嵌入性,Jetty 可以非常容易的嵌入到应用程序当中而不需要程序为了使用 Jetty 做修改。

    idea配置jetty

    • 下载jetty版本9.4.39.v20210325
    • 编辑idea运行配置文件
      在这里插入图片描述
    • 点击+号,添加jetty服务器
      在这里插入图片描述
    • 对jetty服务命名,并在Configration验证Jetty服务器
      在这里插入图片描述
    • 在Deployment中添加war包配置
      在这里插入图片描述
    • 点击ok,运行项目
      在这里插入图片描述
    展开全文
  • Jetty部署springmvc项目

    2019-08-15 22:53:06
    Jetty部署springmvc项目 解压jetty demo-base测试demo 启动jetty 默认端口是8080,修改端口在jetty的根目录下start.ini文件, 启动(java -jar start.jar)之后访问http://localhost:8080可以看到jetty的...

    Jetty部署springmvc项目

    1. 解压jetty

     

    1. demo-base测试demo

     

    1. 启动jetty

    默认端口是8080,修改端口在jetty的根目录下start.ini文件,

    启动(java -jar start.jar)之后访问http://localhost:808可以看到jetty的欢迎页面

    1. 部署自己的war包应用

    把xx.war拷贝到jetty根目录下的webapps下,在start.jar目录下启动jetty,会自动部署war包,http://localhost:8080/xx,可以访问到刚才的xx.war项目,要配置http://localhost:8080即可访问自己的web,则需要在webapps下的xx.war同级目录新建和war包同名的xx.xml文件,内容:

     <?xml version="1.0"  encoding="ISO-8859-1"?>

     <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

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

         <Set name="contextPath">/</Set>

         <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/xxx.war</Set>

     </Configure>

     

    展开全文
  • Intellj IDEA+Jetty部署调试web项目

    千次阅读 2015-09-07 16:58:08
    [size=large]Intellj IDEA里面使用jetty调试web有2种方式: (1)Jetty Server (在本地local模式运行),使用外部的容器,需要单独下载配置配置jetty home Jetty下载地址http://download.eclipse.org/jetty/,...
    [size=large]Intellj IDEA里面使用jetty调试web有2种方式:

    (1)Jetty Server (在本地local模式运行),使用外部的容器,需要单独下载配置配置jetty home
    Jetty下载地址http://download.eclipse.org/jetty/,指定端口号比较麻烦[/size]

    [img]http://dl2.iteye.com/upload/attachment/0111/4982/586cca3e-87ee-3dbd-8259-682aaabff7be.png[/img]
    [size=large](2)Jetty Run (在本地local模式运行), 内嵌方式,把jetty当做jar包的方式运行 ,指定端口号容器,方便运行多个web项目[/size]

    [img]http://dl2.iteye.com/upload/attachment/0111/4984/ace8112c-d935-3edd-bc4a-03a02e331008.png[/img]
    [size=large]Jetty Run安装插件:[/size]

    [img]http://dl2.iteye.com/upload/attachment/0111/4986/69288337-a870-36e6-8605-bc6a310f2950.png[/img]
    [size=large]需要注意的是:使用Jetty Run内嵌运行项目时,注意servlet的兼容,如果maven的pom文件中,也引入了一些额外的jetty包,就会由于
    jar包冲突,造成启动失败,这一点需要注意![/size]
    展开全文
  • jetty部署Web应用程序

    2019-03-01 18:06:26
    web应用程序(Web Application) 经常会说到这个词,大家也不难理解,...符合Servlet规范的应用程序还要求目录下存在一个WEB-INF的文件夹,在里面还必须存在一个web.xml的web部署 配置文件,关于这个目录和we...
  • idea安装本地jetty实现web项目部署

    千次阅读 2018-05-03 23:37:34
    当修改jsp的一个地方,想要马上看结果,如果项目有登录,校验等等复杂的功能,用tomcat跑一次花很多时间,用jetty实现热部署比tomcat快很多。1 官网下载jetty,http://www.eclipse.org/jetty/ 电脑里1.7JDK版本对应...
  • Idea+Jetty 运行web项目

    2019-09-27 14:11:59
    与Eclipse+Jetty启动web项目不同,Idea是以部署war包的形式启动一个web项目。 一.准备好我们的war包 首先,编译你的项目,生成一个war包,不用移动,放在默认的目录就行,一般在项目——》build——》lib目录下 ...
  • 1.自行配置好build.gradle文件和按照gradle的web项目目录结构规范建立java、resourece和webapp文件夹 可在build.gradle文件中自由设定“http端口” 1 jettyRun { 2 reload = "automatic" 3 ...
  • jetty运行web项目

    2019-11-20 17:05:35
    使用jetty在本地运行调试maven项目 https://blog.csdn.net/baidu_19473529/article/details/71108557 如何将maven项目发布到jetty中 https://jingyan.baidu.com/article/d3b74d64f07e101f77e60906.html jetty使用...
  • web程序部署到webapps目录下,导致定时任务启动两次,后来查看上下文启动,发现真的启动了两次,contextpath如下: 1. / 2. mycms 我到webapps目录结构如下: mycms/ website.xml 其中website.xml文件是...
  • MyEclipse中利用Jetty部署web工程的问题

    千次阅读 2013-07-11 20:26:30
    web项目发布到jetty7服务器后启动报错 java.lang.ClassNotFoundException: org.eclipse.jetty.plus.webapp.Configuration at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security....
  • Jetty与tomcat部署web项目的区域

    千次阅读 2016-11-15 09:55:50
    Jetty简单部署的demo,转载自:http://lijingshou.iteye.com/blog/2016207 (原始方式)Servlet 客户端 HTTP 请求:... 第一种方式,我们就是用jetty的方式去部署我们的web应用,第二种就是编写servlet程序,
  • Jetty运行web项目

    千次阅读 2019-04-02 23:06:26
    1 jetty-maven-plugin 1.1 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4....
  • web项目运用jetty部署的两种方式

    千次阅读 2018-12-17 11:51:16
    在开发Java web项目时候,可以在项目中嵌入Jetty服务的方式来运行web程序。 采用Jetty Plugin  在pom文件中引入Jetty Plugin配置即可: <properties> <project.build.sourceEncoding>UTF-8</...
  • idea Jetty忽略web项目名访问项目

    千次阅读 2017-08-18 11:33:53
    idea 下jetty的使用。俩个字,简单粗暴。在pom.xml下加入
  • 在Idea上用mvn jetty:run命令,运行工程,使用浏览器访问localhost/8080正常, 但是使用mvn jetty:run-war,却是异常的。 实在是不懂了。。。 Problem accessing /. Reason: javax.servlet.ServletContext....
  • jetty部署

    2016-10-08 13:59:01
     jetty和tomcat一样都是部署web项目的服务器框架, 但是jetty可以更好的支撑webSocket,并且我们可以通过嵌入式来启动jetty,也就是把jetty部署在我们的web项目中,所以他是一个比较活跃的好用的框架   二、在...
  • idea上用jetty启动web项目

    万次阅读 2018-07-19 14:50:19
    公司旧的项目原来是eclipse本地启动,考虑到使用习惯,工作效率等原因,故想将项目迁移到idea上面。 一开始,部署出现许多奇怪的问题,包括原来eclipse上面的jetty的版本太旧只有6.1.26,官网只能下载到9版本的包,...
  • maven 打包karaf 4.0 x features <groupId>org.apache.karaf.features <artifactId>framework <type>kar ...在karaf 4.0x中使用jetty 不需要单独安装pax-web-features,karaf本身已经内嵌。
  • Eclipse中使用jetty启动Web项目

    千次阅读 2016-11-23 10:01:27
    通过在maven配置文件pom.xml中配置tomcat或jetty插件,可以在eclipse中直接启动Web功能进行测试。这里说jetty。   maven配置: 配置方法参考:  http://stamen.iteye.com/blog/1933452  ...
  • Jetty 9部署web应用

    千次阅读 2015-12-04 15:58:15
    jetty9跟jetty8相比变化还是有一些的,jetty8部署web应用需要将war包部署到${JETTY_HOME}/webapps下,然后将context的相关配置放到${JETTY_HOME}/contexts下,然后启动即可。 jetty9将war包和context配置的xml都放到...
  • 1.下载jetty wget http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.1.v20170120/jetty-distribution-9.4.1.v20170120.tar.gz 2.解压压缩文件 tar -zxvfjetty-distribution-9.4.1.v...
  • 第一步:创建一个maven web工程 第二步:在pom.xml文件中添加jetty的插件,如下&lt;plugin&gt; &lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt; &lt;artifactId&gt;maven-...
  • Intellij IDEA下建立maven管理的web项目,配置jetty部署
  • 通常情况下一个jetty部署一个java web应用,但一台服务只部署一个应用可能会造成资源浪费,所以有时候可能在一台服务器上要部署多个web应用。下面我们以一台server部署两个web应用为例。 服务器环境:安装JDK,2个...
  • IntelliJ IDEA配置Tomcat/Jetty运行Web项目

    千次阅读 2018-06-05 17:16:06
    一、使用Maven的POM引入插件的形式:这种方式只需在POM中引入Tomcat/Jetty的插件即可运行。参考:http://www.cnblogs.com/EasonJim/p/6687272.htmlPOM:&lt;project xmlns="... xmlns:xsi="...
  • 非原创,转自https://www.cnblogs.com/EasonJim/p/7860700.html ... 一、使用Maven的POM引入插件的形式: 这种方式只需在POM中引入Tomcat/Jetty的插件即可运行。参考:http://www.cnblogs.com/EasonJim...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,920
精华内容 10,368
关键字:

jetty部署web项目