记录一下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. C# for循环或者foreach往List中添加对象的时候前面的数据总被最后加入的覆盖

    昨天我旁边小姐姐遇到一个问题,就是在执行for循环往list添加数据的时候,前面的数据信息总是被后面的数据信息所覆盖.  这样编写就会造成这样的数据效果:(所有的数据都会被覆盖)     问题原因:对 ...

  2. sigsuspend()阻塞:异步信号SIGIO为什么会被截胡?

    关键词:fcntl.fasync.signal.sigsuspend.pthread_sigmask.trace events. 此文主要是解决问题过程中的记录,内容有较多冗余.但也反映解决问题中用到 ...

  3. Lepus搭建企业级数据库慢查询分析平台

    前言 Lepus的慢查询分析平台是独立于监控系统的模块,该功能需要使用percona-toolkit工具来采集和记录慢查询日志,并且需要部署一个我们提供的shell脚本来进行数据采集.该脚本会自动开启 ...

  4. Golang 入门 : 字符串

    在 Golang 中,字符串是一种基本类型,这一点和 C 语言不同.C 语言没有原生的字符串类型,而是使用字符数组来表示字符串,并以字符指针来传递字符串.Golang 中的字符串是一个不可改变的 UT ...

  5. CentOS7.5脱机安装SQL Server 2017(NEW)

    发现搜到的都是在线下载安装的,都是只安装了mssql-server服务,没有mssql-server-agent服务.还以为linux下mssql没有agent服务呢.一番测试发现可以脱机安装,但是能 ...

  6. 使用VMware安装Ubuntu虚拟机,创建后开启显示黑屏的解决方法

    将使用的VMware-workstation-full-14.0.0.24051卸载改为使用VMware-workstation_full_12.1.1.6932. 安装VMware成功后,创建新的虚 ...

  7. Python——Twisted框架(网络通信)

    一.简介 twisted是一个封装好的网络通信的库,可以帮助我们快速进行网络编程.注意,python3中,字符串必须转码成utf8的格式,否则无法发送.比如str("test"). ...

  8. Siamese network 孪生神经网络

    Siamese network 孪生神经网络 https://zhuanlan.zhihu.com/p/35040994 https://blog.csdn.net/shenziheng1/artic ...

  9. Flask上下文管理、session原理和全局g对象

    一.一些python的知识 1.偏函数 def add(x, y, z): print(x + y + z) # 原本的写法:x,y,z可以传任意数字 add(1,2,3) # 如果我要实现一个功能, ...

  10. rest framework 解析器,渲染器

    解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 请求体相关字段: Accept:指定了接收的数据类型 Conte ...