今天同事碰到一个问题,在ECLIPSE里启动TOMCAT报错
2009-8-13 12:44:12 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.security.AccessControlException: access denied (java.util.PropertyPermission jsfshn.root read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
at java.security.AccessController.checkPermission(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:627)
最后发现是同事把ECLIPSE->WINDOW->PREFERENCES->TOMCAT->ADVANCED板面中的
“LAUNCH TOMCAT USING SECURITY MANAGER”选中了。
同时在网上找资料时找到以下文章,供参考:
-------------------------------------------------------------------
http://vampire-a.spaces.live.com/blog/cns!3870A46E53A5B5ED!1408.entry
2007/7/30
Ubuntu, JDK 1.5, Tomcat 5.x
这三个东西搞到一起, 真不是个简单的东西... 完全不像网上大家说的那么简单!
安装都是使用的apt-get直接装到, jdk版本是1.5.0-06, tomcat记不太清了, 反正是5.x, 安装完了要设JAVA_HOME, 这也没少捣乱, 少写了一个"/", 弄得./startup.sh死活起不来, 只有./catalina.sh run才能起来, 后来是一点一点扣catalina.sh, 才找到了这个问题, 算是能用sudo ./startup.sh启动了, 然后, 这么启动是root权限, 不安全, 而且apache安装的时候已经注册了一个启动script到/etc/init.d/. 可以在这个脚本里设置启动tomcat的用户, 我的系统里这个用户是tomcat5, nologin的, 用sudo /etc/init.d/tomcat5 start启动, 发现有些文件无权访问, 了解到是系统文件权限的问题, 遂对整个tomcat 搞了个sudo chown -R tomcat5:tomcat5 tomcat5/, 再加个sudo chmod -R 744 tomcat5/, 这部算是过去了, 基本的index.jsp算是可以运行了.
后面出现的问题很诡异, 用root权限启动tomcat, 有的servlet就能正常访问, 不用root, 就不能访问, 先是找到了logs/下面的日志看, 知道是log4j的那个FileAppender的日志文件, 没有写权限, 报access deny (...), 死活不知道怎么回事, 就开始瞎找, 找到conf/catalina.policy, 因为之前看过一点关于java security manager的资料, 所以有点感觉, 看了policy文件, 就照着样子改了改, 但是发现一旦重起tomcat后, 那个文件就变回去了, 最后在文件开头那看到一句话, 大意是说这个文件是由其他几个文件生成的, 应该直接去改/etc/tomcat5/policy.d/下面的文件, 遂杀过去修改, 因为给整个目录设置FilePermission write不安全, 所以就考虑加了这么一条:
permission java.io.FilePermission "/usr/share/tomcat5/logs/-" "write";
我让你写日志, 总没问题吧!! 然后把log4j的日志文件指到了这个目录里, 后来运行中发现, 还是有一点小缺憾, 就是似乎这么做, log4j没法创建文件, 就是说, 你得手动创建一个空文件, 然后log4j才能正常记录日志.
第三关是一个叫jfig的包, 因为他要读写property, 涉及到java.util.PropertyPermission的read和write, 试了几种策略, 对lib设置权限,都不是很成功, 发现不只是要对lib包加权限, 对调用他的servlet也要加权限, 无奈之下, 加了下面的权限:
grant codeBase "file:${catalina.home}/webapps/VV/WEB-INF/-" {
permission java.util.PropertyPermission "*" , "read, write";
};
总算是过去了, 总结一下吧, tomcat 5和JDK 1.5在一起的时候, 默认使用了-security启动tomcat, 所以我才会遇到这个policy问题, 这样等于先用操作系统的权限控制了安全性, 再结合JAVA的security policy控制一下, 感觉是更安全了, 到此, 这个问题算是初步解决了.
对了, /logs/catalina.out, 我死活写不了, 甚至把catalina.sh都改了, 不知道是为啥, 也不深究了...
---------------------------------------------------------------------
另:在这个板面下的“ADD JAVA PROJECTS TO TOMCAT CLASSPATH”勾上了项目的话,
会导致使用不同的类加载器,会出现有意想不到的问题。比如通过下面的代码来操作一些东西
时,结果就会不一样。
this.getClass().getClassLoader().getResource(".");
this.getClass().getClassLoader().getResource("/");
分享到:
相关推荐
eclipse 部署tomcat 服务时出现问题
Eclipse tomcat 配置 Eclipse+tomcat的安装配置
eclipse中部署web项目到tomcat中的插件,解压资源文件com.sysdeo.eclipse.tomcat_3.3.0.rar 到eclipse-plugin目录下,重启eclipse即可。然后在window-preferences-tomcat下配置下tomcat即可。
Eclipse中部署Tomcat并运行JSP My Eclipse下Tomcat的安装与配置 MyEclipse的配置与开发 tomcat+SQL Server 在MyEclipse中用JDBC连接Sql Server
Eclipse neon 安装Tomcat插件
tomcat9 for eclipse4.6 插件net.sf.eclipse.tomcat_9.0.1.jar,最近正在学习开发servlet,但是在本地配置Eclipse的时候发现tomcat的插件并不方便安装,尤其是Eclipse4.6的版本已经不兼容...新的方式又会受到国内网络...
在eclipse下用tomcat服务器和axis插件创建WebService服务,doc文档
tomcat7.0.42源码,eclipse直接使用,tomcat7.0.42源码,eclipse直接使用
Eclipse4.8.0版本,集成了tomcat插件,截止到目前,tomcat插件仅支持7.x版本的tomcat服务器,tomcat8.0之后的暂不支持
tomcat与eclipse的集成,放在eclipse的dropins文件夹下,省去了每次部署的麻烦,需要在tomcat的conf文件夹下制定项目路径
主要就是我们文章中spring环境安装使用的net.sf.eclipse.tomcat_9.1.4.jar
在Eclipse下安装Tomcat插件使开发,编译,发布变的相当的简单,下面就说一下安装的过程,很简单的: 1.先下载一个tomcat插件 地址:http://www.eclipsetotale.com/tomcatPlugin/tomcatPluginV321.zip 2.下载完后将...
eclipse配置tomcat,使用eclipse开发web项目时,首先要在eclipse中配置web服务器,然后就可以在eclipse中创建web项目直接部署到web服务器中去
Eclipse Tomcat插件 将解压后得文件夹复制到eclipse的plugins目录下,比如:D:\eclipse\plugins里面。然后重新启动eclipse,在eclipse工具栏中就会有三个Tomcat图标:启动、停止、重启
解压tomcatPluginV331.zip后,把里面的文件都拷贝在Eclipse安装目录的plugins文件下: 【2】打开Eclipse,单击“window”菜单,选择下方的“Preferences”: 【3】找到Server下方的Runtime Environment,单击右方...
将Eclipse和Tomcat结合起来使用,有助于高效编程及程序的快速发布,值得java爱好者及开发人员学习及珍藏。
通过本人在多次搭建此类开发平台的经验和查阅的相关资料总结整理出搭建Eclipse+Tomcat+Oracle 开发平台的相信过程,帮助你消除搭建开发环境中的问题。
中文版的Eclipse+tomcat+MyEclipse配置
eclipse和tomcat的连接,以及之间绑定的注意细节,以免在绑定是出错
免费】eclipse内的tomcat插件(com.sysdeo.eclipse.tomcat_3.1.0) 解压可用,方便快捷!!!