Eclipse Jee与Tomcat开发问题小结.docx
《Eclipse Jee与Tomcat开发问题小结.docx》由会员分享,可在线阅读,更多相关《Eclipse Jee与Tomcat开发问题小结.docx(12页珍藏版)》请在冰豆网上搜索。
EclipseJee与Tomcat开发问题小结
Eclipse中设置TomcatServer的方法
Eclipse中开发Webapp,一般需要配置TomcatServer,以便在Eclipse中进行Debug.
具体的步骤如下:
1.Windows==>Preference==>Server==>RuntimeEnvironment
具体对一个ServerEnvironment的配置:
2.Window==>ShowView==>Servers
然后点击右键,NewServer,
这里可以选择Tomcat的版本,"Serverruntimeenvironment"就是Step1中配置的ServerRuntime.
第二步是选择要Publish那个WebappModule
这样Server就配置好了.
BTW:
这个步骤中,有一次碰到了一个问题:
“ProjectfacetJava6.0isnotsupported”
Google后,找到的解决方法是:
在EclipseProjecthome下,“.settings”文件夹下的“mon.project.facet.core.xml”文件中有一行〈installedfacet="jst.java"version="6.0"/〉的内容,此处将“6.0”更改为“5.5”,问题即解决。
可以参考这里.
3.修改Server的端口号等参数:
在Step2中配置的Server上,点击右键,选择Open,
然后可以修改端口号等参数.也可以Add/RemoveWebappmodules
4.在Step2中配置的Server上点击右键,然后可以Start/StopServer,Clearn/Re-publishwebappscontents.
5.Project的BuildPath中主要加上两个Library.
"ApacheTomcatv6.0",这是在Step1中配置ServerRuntimeEnviroment后出现的一个Library.
"WebAppLibrary",这个是原来就已经配置好的,否则WebProject编译应该会出错.
6.配置Project的DebugConfiguration.
这个的配置项目也很多,主要要注意Arguments中对Tomcat启动是对一些内存参数相关的配置.
可以参考Tomcat6的一些设置这篇文章.
如何将项目自动部署到tomcat
1.找到以下目录
tomcat\conf\Catalina\localhost
2.新建一个配置文件xx.xml,输入:
\WorkSpace\helloworld\WebRoot"
workDir="D:
\WorkSpace\helloworld\WebRoot\work"debug="1"privileged="true"reload="true">
重点修改下划线的部分,然后tomcat就会自动部署你的项目,而不需要那么多麻烦事了。
修改类不用重启Tomcat加载整个项目
以修改类不用重启Tomcat加载整个项目(手工启动)
配置reloadable=true(自动重载)
使用Debug模式,前提是仅限于局部修改。
(修改类不用重启--热加载)
Tomcat轻小,而WebLogic、WebSphere对硬件要求比较高,吃内存、耗CUP。
JBoss类更改不会重启(传说,我没用过,不知道!
)。
在使用Eclipse+Tomcat开发Java项目的时候常常会碰到这样的情况,已修改Java文件Tomcat就会自动重启,接下来就是漫长的等待服务重启完毕。
那其实大多数的Java文件修改是没有必要重启服务的,只有一些特定的Java文件,比如说只有重启服务的时候才会调用的Java代码才需要重启服务。
一修改java代码就重新部署(console有明显提示),且会话失效,设置服务器为debug模式(debugonserver),否则修改不起作用.
什么时候应该redeploy,什么时候应该重启tomcat。
如果项目大,redeploy和重启tomcat的系统开销是很大的,经常要等很长时间。
Tomcat运行时动态重载类,实现重载功能的测试jsp。
当系统中有很多类时,如果开启了Tomcat的reloadable=true,那么每当相关文件改变时,Tomcat会停止webapp并释放内存,然后重新加载webapp.这实在是个耗时的工程.如果能有只重载某几个类的功能,将极大的满足我这个即时调试狂。
1.修改类不重启Tomcat(不用手动重启)
首先需要设置server.xml中的Contextreloadable="true",true自动重载(不是重启!
),false手动重载。
(如果项目在Tomcat中,应该去Tomcat目录设置。
)
EclipseEE设置方式,文件设置:
server.xml>reloadable="false"界面设置:
Server>Modules>Edit>webapp>Autoreloadingenabled>false
开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。
可以选择把其他不相关的项目先从webapps移出,这样tomcat加载的项目就少了,相应也就快了。
2.修改类不重启Tomcat有两种方式:
热部署、热加载
热部署:
容器状态在运行时重新部署整个项目。
这种情况下一般整个内存会清空,重新加载,这种方式可能会造成sessin丢失等情况。
tomcat6确实可以热部署了,而且会话也没丢.
热加载:
最好是在调试过程中使用,免得整个项目加载,Debug模式支持热加载。
容器状态在运行时重新加载改变编译后的类。
在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。
一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的(Eclipse、MyEclipse8、JBuilder、IntelliJIDEA…)。
3.自动编译JSP
buildAutomatically
修改Tomcat源代码实现realoadable!
不推荐~
eclipse下实现热部署,tomcat不重新reload
1.在eclipse中首先打开Server视图(Window->ShowView->Servers),如下图:
2.然后选中一个Server,点击右键,选择“Open”,打开Server的编辑器,如下图:
3.在Modules页签内,修改AutoReload属性为Disabled就可以了,如下图:
BTW:
具体修改AutoReload的方法是点击“Edit”按钮,弹出编辑窗口,在窗口中去除“Autoreloadingenabled”项选中即可,如下图: