Tomcat项目部署的一系列问题总结

it2024-07-30  36

这几天在学习Tomcat的项目,用的是Intellij IDEA 2017.3.4的版本,然后配置的tomcat是apache-tomcat-8.5.51。

项目的设计本身是没有问题的,中间出现的问题主要包括:接口被占用,以及关闭项目后重新打开就无法连接服务器了。捣鼓了两天解决了这些问题,来记录一下。

文章目录

前言一、关于8080和1099端口被占用的问题。二、关于IDEA重新导入项目时的lib,tomcat,artifacts和module的配置这个问题重点是要配置artifacts和右上角的tomcat 总结


前言

一、关于8080和1099端口被占用的问题。

示例: 首先是有的时候会发现出现这个错:Error running Tomcat 8.5.51:Address localhost:1099 is already in use。有的时候1099变成8080,有的时候是Unable to ping server at localhost:1099.。解决方法都是一样的: 还有一些类似的,包括端口的8080被占用,或者1099被占用,或者两个都被占用。这种的解决方法比较常规,网上记录的也有不少了,这里再写一下吧:用管理员权限(注意!普通的不行)打开cmd,输入netstat -ano (注意空格要有不然会报错),查看当前的8080和1099占用的是什么程序,具体实现方法如下: 然后找到之后,打开任务管理器,找到正在执行的任务,将它结束即可。我这里是正常运行的所以没有。进程号码就是PID的值。

还有一种比较粗暴的方法,是我学会了这个之后才看到的: 先输入

netstat -ano | findstr 8080,

找到对应的进程,然后

taskkill -pid 8080 -f

直接杀掉该进程。这样比较方便快捷。我这里因为8080正在跑所以杀了一个别的做示范。 这个错误在刚开始接触的时候还蛮常见的,记录一下。

二、关于IDEA重新导入项目时的lib,tomcat,artifacts和module的配置

这个问题重点是要配置artifacts和右上角的tomcat

还有一个可能碰见的人就不多了:因为IDEA只能运行一个项目,所以当我关掉之前的项目,重新打开的时候,就会发现,右上角的配置没了,而重新进行配置的话会报一个稀奇古怪的错:

就是它识别不了之前已经配置好的tomcat里的servlet.api里的各种接口了。我是采用正常的File new Project from Existing Sourses一路导入的,所以可能的结果就是,新打开的项目的模块里并没有完成web的配置。 所以,首先第一步是要重新在右上角完成配置,增加配置的方法是点击左上角那个绿色的加号,然后在Application Server里选择自己电脑里tomcat的文件夹的位置,剩下的idea会自动配置好。

然后重点来了:我一开始就这样就结束了,然后发现没有任何用处,该飘红的还是飘红,原因在于没有设置Deployment。而这个,不是在这里设置的,是要设置Project Settings里的Modules和Artifacts。在Modules里是要选择Web,然后artifacts里面是选择Web Application Exploded里面的from modules,具体的设置我截图展示: 把这两个设置好之后,deployment里显示的才是正确的。 即这个day17_case:war exploded。 当然,lib也要配置,如果有一些外部的,就记得加入,然后我为了避免麻烦把整个tomcat的lib都放进去了。

花了半天解决这个问题。解决完之后,想要了解一下,为什么会出现这样的情况呢?查了一些资料发现,artifacts在项目里的含义是部署包,IDEA在自动保存后不会做编译,在运行server前才会做一次编译,并根据artifact中的设定来创建目录。 而重新打开项目之后,因为artifact里面的东西是空的,所以相当于web的各种设置根本就没有配置到项目里面去,因此也就不会对于已经在目录下的东西进行编译的操作,不知道我这么理解对不对。

总结

提示:这里对文章进行总结: 以上就是我在初始化配置tomcat中出现的一些问题。问题一比较常见,写过的人比较多;问题二我到目前为止还没有碰见过,可能是因为自己电脑的版本太旧了,但是这个是比较完善的,解决项目配置的问题的方法。

最新回复(0)