Tomcat疑问与解答
疑问1:tomcat中的几个概念:项目、实例、应用分别是什么意思。
答:
一、【应用】就是一个tomcat软件,一台机子上可以有tomcat7.0、tomcat8.0等等互不影响。在linux下通过tomcat7-instance-create
命令创建的文件夹实际上就是一个应用(可以理解为应用的复制),其中包含该应用的公告文件lib
。
二、【实例】,是一个应用的多个单例,通过这种方式建立的单例是在在同一个服务下运行的。他们共享应用的bin
和lib
,也有各自的conf
,webapp
可以由conf
配置,其他文件夹会在实例启动后自动运行。
三、 【项目】,即一个web项目,默认应该放在webapp中。
疑问2:为什么在eclipse新建并开启tomcat服务后,输入网址跳转的目录不是tomcat下配置里面的路径。
答:
一、可能性:
1.eclipse新建了一个实例,每次依然tomcat安装目录下启动服务,同时改变bin
启动选项,将启动后指向的文件改为新的实例文件夹。
2.eclipse是复制了整个应用为一个新的应用,然后通过这个应用为每一个新的Eclipse产生的server提供支持。
二、猜测基础:
1.tomcat正常运行时,运行webapp下的项目。而eclipse新建了一个tomcat服务并开启后,运行的是其他目录下的文件
2.eclipse在非tomcat安装目录下建立路径时,tomcat安装目录文件没有发生改变。反之则会覆盖部分文件。
3.打开eclipse建立实例时,每次的默认端口都是和tomcat安装目录下配置的端口是一样的。改变端口后不影响tomcat目录下配置。
三、分析:
1.通过【猜测基础2】否决【可能性1】,初步推断是【可能性2】。
2.查资料得知tomcat新建实例步骤,新实例通过执行catalina.bat
时传递【CATALINA_BASE】参数运行,tomcat相关文件不会改变,从而发现上述推断有误。
3.当在
catalina.bat
中插入cd.>a.txt
后【当前目录下新建txt】,运行catalina.bat
成功新建txt,当在eclipse中新建服务时,不会有效产生txt。推断不是运行同一个catalina.bat
暂时无解