今天我启动在IDEA上启动tomcat的时候,报出如下错误信息:
错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
1099端口是干啥的?为啥会报错?这就引起了我的好奇,对这个1099端口相关探究了一波,以下是简略过程。
首先,追根溯源,是启动tomcat时报的错,肯定跟tomcat脱不了干系,打开IDEA的配置tomcat界面,端口设定处,如图,发现1099端口是JMX指定的端口:
那么JMX又是什么?和Tomcat又有什么渊源?
JMX(Java Manager Extension),是一个Java管理体系的规范标准,主要负责系统管理和监控,基于此规范扩展的系统具有管理监控的功能,可以动态监控和修改内存中变量。利用在Tomcat中,可以监控和管理服务器性能,JVM参数,WEB连接数,线程池,数据库连接池,配置文件重新啊加载等并且提供了远程友好的可视化管理等,实时性高。
详情可参考:https://blog.csdn.net/u013782203/article/details/51435717
知道了JMX和tomcat的关系,又不禁对tomcat产生了疑惑?JMX是管理Java程序的,难道tomcat也是Java程序?
经过查询资料,发现tomcat确实是运行在JVM上的Java进程,是Java写的程序,其实现了Servlet和JSP的规范,是一种容器,支持实现了Servlet规范的应用运行。
………
详情可参考:https://blog.csdn.net/weixin_41490593/article/details/95487658?ivk_sa=1024320u
这些确实是我之前未了解到的,只是知道简单的使用,可见,日常报bug也不是一点作用也没有,善于思考,学会总结,不要放过每一次提高自己的机会。
最后有关端口占用的问题,都可通过查找占用的进程,然后杀掉占用端口的进程解决。