• IDEA+Tomcat+JRebel热部署


    在完成idea工程简单应用后,接下来实现热部署。

    简单应用地址:http://wibiline.iteye.com/admin/blogs/2072454

    一、安装JRebel插件

    1. 在线安装

     File->setting或者直接点设置的图标进入



     

     在线下载并安装,安装的插件在C:当前用户下.jrebel 和.IntelliJIdea13。

    2. 破解插件

    下载破解补丁具体要找到对应版本的,这边用的是5.5.2的破解版本(但实际安装的是5.5.3,照样可以使用)将破解版里面的jrebel.lic拷贝到C:当前用户下.jrebel 目录下;jrebel.jar替换C:当前用户.IntelliJIdea13configpluginsjr-ide-idealib目录下的jrebel.jar文件

    打开idea后,看到jr图标就代表安装插件成功,还有在设置里面会多出Jrebel,如下:



     License为valid就代表破解成功了。

    二、部署项目工程的两种方式

    方式一、结合Artifacts部署项目

    1. 打开项目配置project structure



     根据项目Modules配置Artificials

    2. tomcat加载项目



     然后填写应用名称,转到Server页签进行配置



     两个地方都修改成Update classes and resource

    3. 修改Jrebel参数



     设置redeploy时间,这样修改java文件后,jre会自动监测到。(不过这样设置是否会很占内存?)后台会有提示信息,如:2014-05-29 19:13:12 JRebel: Reloading class 'MyServlet'.

    经过这三步设置,一般就可以了。这样貌似连rebel.xml都不用生成,就可以实现热部署了。记得以jr方式启动tomcat(就是点那个jr图标了),而不是直接启动tomcat。

    方式二、External Source加载项目工程

    1. 修改class输出目录

     
    class文件输出到工程本身的WEB-INF目录下

    2. tomcat加载项目

     选择到web工程的根目录即WebRoot,这个目录直接包含工程本身的jsp、html等文件还有我们配置的class输出内容。这样jsp有修改就可以直接显示,而class就由jre监测。

    注:用这种方式加载项目的,在server里面就没有Update classes and resource了

    3.生产rebel.xml

    右键项目,可以看到Jrebel选项,选择rebel.xml即可自动生成,xml主要内容是监测class目录和web工程目录

    4. 设置idea自动编译

     这4个步骤设置好,用jr启动tomcat就可以了。

    总结:两种方式都是以tomcat目录下localhost的配置文件进行加载项目,配置文件里指定加载的路径。Artifacts方式的,class不仅要生成output,同时在Modules那边也会指定class的生成目录,感觉多生成了一份,没什么必要,不知道这样的好处在哪里,暂时不懂。而External Source加载项目工程的方式,直接在Modules指定class生成目录到本工程下,而jsp本身就是工程下面的,所以在tomcat的配置文件那边直接指定到工程目录下即可。所以个人暂时采用方式二进行处理,用一段时间试试。

    遇到的问题:采用方式二部署项目的时候,tomcat启动,找不到工程的jar包,而工程明明有引入对应的jar包了。

    问题原因:jar包目录lib跟web根目录同一级别,tomcat启动的时候无法加载到这个lib。虽然项目编译能通过,但发布的时候就会有问题。

    问题解决:将lib目录放于WEB-INF目录下即可

  • 相关阅读:
    Java 入门 36 泛型深入 泛型的概述和优势 自定义泛型类 自定义泛型方法 自定义泛型接口 泛型通配符 上下限
    Java 入门34 常见的数据结构
    Java 入门 40 日志框架 项目阶段 (Java 入门 1924天 需要使用在学)
    Java 入门 31 常用API 日期与时间
    Java 入门 32 包装类 正则表达式 Arrays类 Lambda表达式枚举
    Java 入门35 List系列集合, 几黑的并发修改异常问题 LinkedList
    OpenStack yoga安装(Ubuntu)
    OpenStack命令行添加网卡
    Ceph删除pool
    ceph osd 初始化硬盘时提示OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error
  • 原文地址:https://www.cnblogs.com/Qiaoyq/p/6169393.html
Copyright © 2020-2023  润新知