记录一下idea远程tomcat运行项目的配置过程

背景:每次系统修改代码后则需手动打包手动部署到测试服务器上,为了简化这个过程我这里选择尝试一次idea的远程运行功能,结论来讲这玩意配置麻烦,并不算很好用,只是部署的话,还是Jenkins之类的自动化工具更合适。

远程机:安装有tomcat

本地机:顾名思义,开发用的装有idea的机器

系统均为windows7,tomcat为8.5

远程机:

tomcat默认项目路径是webapps,首先不建议继续使用这个路径,为server.xml下/Server/Engine/Host@appBase指定一个新路径,然后将其设置为共享文件夹用于给本地机传包,idea有好几种方式可用于传包,这里我选择windows自带的共享文件夹方式,ftp也可以这里我就不多说了。

接下来修改tomcat启动参数,首先明确一点,windows下tomcat有2种常见启动方式,1是startup.bat,2是tomcat8.exe以服务方式启动。

用方法1启动则需要添加setenv.bat文件设置CATALINA_OPTS,内容为set CATALINA_OPTS=...

如果使用第二种方式启动则需要使用tomcat8w.exe在Java下的Java Options后添加启动参数,注意这种方式需要注意服务名称,如果服务名称为Tomcat8那么没有问题,如果为自定义名称则需要重命名tomcat8w.exe为${自定义名称}w.exe,例如我把服务名改为tomcat666那么我就需要重命名tomcat8w.exe为tomcat666w.exe

启动参数内容可以在idea帮助文档中查到。

-Dcom.sun.management.jmxremote=

-Djava.rmi.server.hostname=<host>

-Dcom.sun.management.jmxremote.port=<port>

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

host为远程机的ip,port为jmx port,自定义,注意不要被占用。

然后启动tomcat。

以上,远程机的准备就做完了。

本地机:

首先,因为我们使用的是共享文件夹方式来传输,本地机需要挂载共享文件夹为网络驱动器,win7下右键计算机选择映射网络驱动器,这里我将其映射到X盘,成功后计算机下会多出一个X盘。

接下是idea配置

首先新建一个tomcat-remote运行项



修改localhost为远程机的ip地址,JMX port设置为先前在tomcat配置好的端口,然后修改type为local or mounted folder,意思为本地或挂载文件夹,之后的host需要手动添加先前映射的X盘,path from root可以为空,如果共享的文件夹不是tomcat的appBase则需要填此项,注意mapped as为指定文件夹对于远程机的本地路径,比如远程机共享了D:\artifacts文件夹,而path from root为空,则这一栏就应该填D:\artifacts,如果path from root为webapps,则这一栏就应该为D:\artifacts\webapps,之后运行时会把编译好的项目放到这里。

之后再在Deployment中添加artifact,这里就不多赘述了。

接下来就应该可以编译运行了,如果artifact选择的war包则需要先用maven打好包再运行。注意远程机的tomcat必须为启动状态。

以上就是使用远程tomcat运行项目的配置过程,实际使用时时常会报错,此时清一下共享文件夹再运行一次多半就解决了,注意这个就算运行stop后tomcat也不会真的stop,所以可以用来远程部署。

以上只是远程运行的配置,如果需要远程debug还需做额外配置。在远程机tomcat运行参数中添加如下参数即可

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

idea远程tomcat运行项目的更多相关文章

  1. Eclipse版本推荐(tomcat运行项目:web、maven)

    1.区别 Eclipse根据特性和jdk版本,从Eclipse官网可看到,分为:Neon/Oxygen/Mars/Luna/Kepler/Juno/Indigo/Helios...等等. Eclips ...

  2. Jfinal本地eclipse+tomcat运行项目时候遇到错误Exception starting filter

    今天想在本地eclipse上启动tomcat让项目在本地运行,但是老是报错类找不到异常. 也可能报其它错误,大概都是classNotFoundException. 九月 19, 2018 5:42:2 ...

  3. 使用visualVM 1.3.8(visualvm_138-ml.zip) 监控远程Tomcat运行情况

    服务端CentOS6.4 x64安装的是jdk1.7 下载visualVM1.3.8-ml 也就是多语言版本,包含中文,界面用起来方便.官方下载地址比较慢,百度上搜索的都是csdn,51cto等必须登 ...

  4. Intellij IDEA 远程debug、远程tomcat部署项目

  5. eclipse配置tomcat运行项目访问不加项目名

  6. eclipse配置apache tomcat运行时访问路径不需要项目名称

    问题:tomcat运行项目默认是要带上项目名的,有时候不想要项目名来访问,如何解决呢? 方法: 1:双击打开tomcat 2:选择Modules,选择你要修改的项目 3:点击Edit,把path修改成 ...

  7. Eclipse------用Tomcat运行项目后出现:严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener

    Eclipse中Tomcat运行项目后出现: 严重: Error configuring application listener of class org.springframework.web.c ...

  8. Jenkins进阶-部署Web项目到远程tomcat(7)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

  9. Jenkins部署Web项目到远程tomcat(通过jenkins插件)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

随机推荐

  1. Java并发-AQS及各种Lock锁的原理

    原文 : https://blog.csdn.net/zhangdong2012/article/details/79983404

  2. ES ik分词器使用技巧

    match查询会将查询词分词,然后对分词的结果进行term查询. 然后默认是将每个分词term查询之后的结果求交集,所以只要分词的结果能够命中,某条数据就可以被查询出来,而分词是在新建索引时指定的,只 ...

  3. Java canlendar task

    DayPilot for Java - Calendar, Scheduler and Gantt Chart Componentshttps://java.daypilot.org/ AJAX Sc ...

  4. deb包转化为rpm包

    deb文件格式本是ubuntu的安装文件,那么我想要在fedora中安装,需要把deb格式转化成rpm格式,我们用skype举例: 1.下载转换工具alien_8.78.tar.gz 2.deb转化成 ...

  5. 【win7】安装php7.3及扩展

    php7.3插件php-redisphp-igbinaryphp-amqp [初识RabbitMQ,附RabbitMQ+PHP演示实例]https://www.cnblogs.com/miketwai ...

  6. C#中字符串的字面值(转义序列)

    在程序开发中,经常会碰到在字符串中字面值中使用转义序列,下面表格收集了下转义序列的完整列表,以便大家查看引用: 转义序列列表 转义序列 产生的字符 字符的Unicode值 \' 单引号 0x0027 ...

  7. vue 使用微信JSSDK,在IOS端会授权出错

    原因: vue-router切换的时候操作的都是浏览器的历史记录,iOS会把第一次刚进入时的URL作为真实URL,安卓会把当前URL作为真实URL. 所以导致后端在配置好的授权参数获得的config参 ...

  8. [模板] 数学基础:快速幂/乘/逆元/exGCD/(ex)CRT/(ex)Lucas定理

    方便复制 快速乘/幂 时间复杂度 \(O(\log n)\). ll nmod; //快速乘 ll qmul(ll a,ll b){ ll l=a*(b>>hb)%nmod*(1ll< ...

  9. 【Android O】 Service AAA does not have a SELinux domain defined

    在init.AAA.rc里面添加了一个脚本启动的服务: service AAA /vendor/bin/sh /vendor/etc/AAA_spec.sh user root group root ...

  10. Flask 视图,中间件

    视图 FBV def index(nid): """ 请求相关信息 request.method # 请求方式 request.args # get 方式的参数获取 re ...