配置完成后,点击d框右下角的apply就行
我们都知道部署tomcat有三种方式,比较直接的就是直接将war包放到webapp中让它自己解压,但是idea并不是采用这种方式。如果直接去tomcat下找的话,我们也会发现找不到我们的项目。这是因为idea是通过项目映射的方式来部署我们的项目的。
首先,先找到我们的映射文件
昨天整一个idea远程部署,搞得头破血流的,整理一下,免得下次受苦。
在tomcat安装目录/bin/catalina.sh 脚本中添加一下命令,注意双引号之间是传递给JVM的参数,一个-D就是一个KV设置,保险起见每行后面留个空格,因为不知道换行符会不会生效。
用以下命令运行tomcat,不要用startup脚本
菜单栏Tools->Deployment->Configure->左上角+按钮:
输入部署的别名,比如Test,点击OK
按照上图的说明填写对应的资料。
如果是ubuntu系统,SFTP协议是默认启用的,账号密码和SSH登录的一样是主机用户,填完点击Test SFTP connection测试一下。这里踩了一坑,还自己搭FTP服务器,慢的要死。
菜单栏Run->Edit Configurations->左上角+按钮->Tomcat Server->remote:
按照图中的说明填写对应的资料,Tomcat Server Settings中的设置,就使用前面的deploy设置即可。
这里的Application Server设置也踩了一坑,因为是部署到远端的tomcat,我以为是要填写或者映射到服务器tomcat的路径,差点就搭一个smb服务出来。实际上这里是要本机的tomcat环境,用来解决项目编译依赖的,选择你本机安装的tomcat目录即可。
tomcat运行起来之后,默认是在8080端口,但是访问云主机,是无法打开测试页面的,这是因为云主机的防火墙拦截了,要手动打开你需要的端口。
除了8080以外,还有jdwp端口,rmi等你需要的端口都要打开,不用再关掉。出连接错误了,就看看是不是防火墙设置问题。
我买的是阿里云主机,其他的大概也一样。云主机有一个随机的id和一个固定的内部ip,它是通过/etc/hosts来配置的。在云主机上部署tomcat不知道为啥要去解析id对应的主机,如果解析失败就无法启动。如果报这个错误,用以下命令恢复主机映射即可。
ip地址是你云主机的内部地址,iZXXXZ是报错的主机id。就是这玩意折腾了我半宿,最后找阿里云客服给的解决方案。
配置完后使用run直接部署服务或者debug,在本地的虚拟机上是可以的,但是在云主机上,就回报java rmi 连接超时,查看防火墙的端口1099是开放的,换Idea的rmi端口也不行。
这个没找到解决办法,只能在部署、调试的时候把tcp端口都打开,完事再关掉了。如果是正式上线,就想办法手动拷贝吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)