Eclipse JEE中 Server Options追踪

默认的配置如下:

                

这个默认配置存在一个问题,每次保存JSP时tomcat会自动重启,this is quite annoying..解决办法是

Ctrl+Shift+R,找到server.xml

将reloadable="true"改为false,这样保存JSP时Tomcat不会自动重启

接下来看看图中几个参数的含义:

 

(1)serve modules without publishing: 让tomcat直接使用WebContent下的东西 省去publish到<workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 勾上它会将tmp0\wtpwebapps下相关的resources删除, 同时会修改Servers/Tomcat v6.0 Server at localhost-config/servers.xml中的serveModulesWithoutPublish=true 以及tmp0/conf/server.xml中的<Context>配置
(2)publish module contexts to separate XML files

勾选 上后会修改Servers/Tomcat v6.0 Server at localhost-config/servers.xml中的saveSeparateContextFiles=true

同时将tmp0/conf/server.xml中关于该app的<Context>元素

移动到tmp0/conf/Catalina/localhost/appName.xml中..

修改JSP后立即生效 在Servers视图中双击tomcat

勾选上Automatically publish  when resources change

这样修改JSP后tomcat能热加载。。(这个选项对java文件无效,关了以后每次也能热加载)

 

通过eclipse启动tomcat设置JAVA_OPTS失败的解决方案

Window-->Preference-->Server-->Runtime Environment-->add-->Apache -->Apache TomcatV6.0...设置JRE,完成。

Servers view 中右键New-->Server,选择Apache-->Tomcat V6.0 Server,完成!

 

通过eclipse中配置的tomcat6,发布项目,启动时报内存溢出,需要重新设置tomcat的JVM参数。

常用的设置方法为:

修改%tomcat_home%/bin下catalina.bat(windows环境下)文件,在

 

echo Using CATALINA_BASE:   "%CATALINA_BASE%"

上面新增

set JAVA_OPTS=%JAVA_OPTS% -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=512M 
-Droot.log.level=INFO
-Dspring.log.level=WARN
-Dsql.log.level=INFO
-Dproject.log.level=INFO
-Dmas.log.basedir=D:/opt/logs/mas/mas_log

 

解释:

set JAVA_OPTS=%JAVA_OPTS% ...   ---- JAVA_OPTS 追加参数
-Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=512M  -- VM参数设置
-Droot.log.level=INFO -Dspring.log.level=WARN -Dsql.log.level=INFO -Dproject.log.level=INFO -- log日志设置
-Dmas.log.basedir=D:/opt/logs/mas/mas_log   -- 定义全局变量 mas.log.basedir = D:/opt/logs/mas/mas_log 该地方是为logback中定义日志存放地址

 

<fileNamePattern>${mas.log.basedir}/mas_batch.log.%d{yyyy-MM-dd}</fileNamePattern>

 

但是,配置好好如上参数后,启动后仍然报内存溢出错误,通过Jconsole观察,修改的参数没有生效。

 

分析:

1. tomcat默认通过执行%tomcat_home%/bin/startup.bat完成tomcat启动

2. 修改了tomcat的catalina.bat中JAVA_OPTS参数,没有生效,说明通过eclipse启动tomcat并未调用%tomcat_home%/bin/startup.bat

3. eclipse中,选择菜单栏Run -> Run Configurations -> Apache Tomcat -> Tomcat V6.0 Server...

   选择Arguments标签页,会发现program arguments中参数为:start,说明eclipse是调用tomcat的main方法并传递start参数启动tomcat的;

   而Arguments标签页下面的VM arguments参数,启动tomcat使用的是eclipse中我们自定的JRE

因此,需要修改eclipse中JRE的VM参数

windows->preference->java->instal jres->edit,增加如上的参数即可。

 

posted @ 2017-07-05 18:14  IT经典人生  阅读(180)  评论(0)    收藏  举报