配置插件
- 点击提示文字添加Tomcat
-
选择自己下载的Tomcat版本(此处演示的Tomcat版本为8.0),Server name可以自己设置一下,以区别不同的Tomcat服务,点击Finish完成添加
Tomcat添加完毕后需要设置一下:将Server Location的单选框选择到第二项(将服务发布到Tomcat安装目录下),Ctrl+S保存。此步骤虽不是必要,但是如此设置能方便排错。另外注意到,我右边框起的部分为访问后台的端口号
其中需要注意的地方有两个(红色标记的地方):
(1)Server Options的第一个选项Serve modules without publishing
在默认情况下,当项目部署到tomcat中,该插件会把项目文件拷贝到上一个配置项Server Locations中的显示Server path的wtpwebapps目录下,即当前wrokspace所在目录下的。metadata子目录中,如我的wrokspace是D:\workspace,那么该目录是:D:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps。
但如果选中上面的这个选项,则不会把项目文件发布到该目录下运行,而是:
web资源目录是:web项目的WebContent,即maven web项目的src/main/webapp目录
class文件目录是:是当前配置的class文件的输出目录,即maven项目的target/classes目录
(2)Timeouts
默认情况下start为45秒,stop为15秒,这里可能需要修改一下start为一个合适大的值,它的意思是当启动时间超过这里指定的时间还没有启动完成时,就报错。当我们的项目启动很耗时的情况下,这显然不是我们想要的,所以需要修改一下这个值。
- 然后我们需要将项目添加到Tomcat服务中:点击Modules,再点击Add Web Modules
- 选中我们的项目,Document base和Path将自动解析,点击OK完成添加。注意:Path的值决定后台的访问路径,前面提到的端口号也是决定后台的访问地址。
- 选择添加的的项目,点击Edit,去掉Auto reloading enabled的勾选。为什么去掉此勾选我不作解释(loserStar:你不做解释我解释,勾上之后只要修改过java代码就会自动重启Tomcat,清空了seesion,需要重新登录。不勾起来就不会重启,不勾的弊端就是可能新添加了方法这种就不生效,需要手动重启Tomcat)。操作后别忘了Ctrl + S保存。
-
添加成功,完毕
双击打开server.xml,当添加了一个项目到tomcat后,可以看到,自动添加了一个Context节点,
<Context docBase="stuff" path="/stuff" reloadable="true" source="org.eclipse.jst.jee.server:stuff"/>
其中docBase和path默认为工程名称。
这里特别需要注意的是reloadable这个属性,它是热部署的关键,默认为true。在tomcat启动后,会监视我们的工程,如果任何文件有变动,会重新加载这些变动的文件到工程发布目录。当reloadable属性为true时,这对于jsp文件没有问题,但是如果是java文件修改后,这个属性为true的话,每次修改都会自动重新启动tomcat,这当然不是我们想要的。所以记住要把这个属性手动修改成false,才能够在修改了java文件时不用重启服务也能立即生效,即热部署。
这里说的java文件的修改,不包括新添加类和添加或修改类中的方法签名,如果新添加类或修改了方法签名,也是不能热部署的,必须重启服务才能够生效。
相关问题
1 . 解决Eclipse发布web project, jar无法发布到tomcat lib目录下的问题
2.eclipse无法添加server,Cannot create a server using the selected type
今天在eclipse想把之前的Tomcat 6删掉,重新配置一个,不料没有下一步
Cannot create a server using the selected type 这句话出现在窗口上面,应该不是很解决的问题.......
重启下 eclipse,还是不行哦
出绝招了,呵呵.....上网搜搜
还真的找到解决的方法了,如下:
1.退出 eclipse
2.到[工程目录下]/.metadata/.plugins/org.eclipse.core.runtime
3.把org.eclipse.wst.server.core.prefs和 org.eclipse.jst.server.tomcat.core.prefs这两个文件去掉
4.重启eclipse
Server Options说明-Serve modules without publishing
ps:
- lxx自己理解,如果勾上该选项,则eclipse启动tomcat时不会发布到wtpwebapps目录,而是把tomcat的server.xml中配置了一个路径去找项目路径下的WEB-INFO和WebContent的目录
- 勾上以后:修改代码后重新加载得比较快,因为不用等eclipse重新发布到Tomcat
- 不勾:修改代码后重新加载得慢,要等eclipse重新把代码部署到Tomcat
-
如果项目启动时找不到类,可能是因为部署的依赖没有添加
-
如果启动以后连基本的class都找不到,直接报404(jfinal),可能是因为部署的目录多加了一个(本人就是,诡异的是多加的这个目录,直接代码部署到Tomcat是正常的,Serve modules without publishing勾上之后就不正常)
Server Options的第一个选项Serve modules without publishing
在默认情况下,当项目部署到tomcat中,该插件会把项目文件拷贝到上一个配置项Server Locations中的显示Server path的wtpwebapps目录下,即当前wrokspace所在目录下的。metadata子目录中,如我的wrokspace是D:\workspace,那么该目录是:D:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps。但如果选中上面的这个选项,则不会把项目文件发布到该目录下运行,而是:web资源目录是:web项目的WebContent,即maven web项目的src/main/webapp目录 ,class文件目录是:是当前配置的class文件的输出目录,即maven项目的target/classes目录
选择Publish module contexts to separate XML files。如果不选一般会报错。did not find a matching property。这一步的主要目的在于 :使本来 配置在conf/server.xml里的<context>元素,separate到/conf/Catalina/localhost/的目录下专门生成一个{context_name}.xml。
modules auto reload by default意思是自动自加载
enable security 启用安全保护我们的应用
参考链接:https://blog.csdn.net/dcx903170332/article/details/49127723