`
Freeze
  • 浏览: 112891 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于ECLIPSE下的TOMCAT使用问题

    博客分类:
  • Java
阅读更多
今天同事碰到一个问题,在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中部署Tomcat服务器时,可能会出现各种问题。例如,在Tomcat服务器启动...

    Eclipse 配置 Tomcat 详细教程

    eclipse配置tomcat:Eclipse 配置 Tomcat 详细教程; eclipse配置tomcat:Eclipse 配置 Tomcat 详细教程; eclipse配置tomcat:Eclipse 配置 Tomcat 详细教程; eclipse配置tomcat:Eclipse 配置 Tomcat 详细教程; ...

    Eclipse与Tomcat如何结合使用

    * 本篇文章主要是用来说明如何在Eclipse下配置Tomcat,关于其中可能出现的问题,请大家看我的另一篇经验。 * 由于步骤比较繁琐,有些步骤如果大家没有看明白,请留言,我会详细解释的。 * 如果这篇文章对大家有所...

    eclipse-tomcat.zip

    标题 "eclipse-tomcat.zip" 指的是一个包含了Eclipse集成开发环境与Tomcat服务器集成的相关组件的压缩文件。这个压缩包主要是为了帮助开发者在Eclipse中方便地管理和运行Spring应用程序而设计的。核心组件是 ...

    eclipse的tomcat插件

    Eclipse是一款广泛使用的Java开发集成环境,而Tomcat是一款流行的开源Java Servlet容器,常用于运行Web应用程序。将Tomcat与Eclipse集成,可以极大地提升开发和调试效率,免去手动部署应用的繁琐步骤。本文将详细...

    Eclipse集成Tomcat插件

    Eclipse是一款广受欢迎的开源Java集成开发环境(IDE),它为开发者提供了丰富的功能,...虽然Eclipse 4.8.0的插件存在版本限制,但开发者可以通过手动配置或者其他工具来解决这个问题,以适应不断更新的开发环境需求。

    eclipse 访问tomcat问题

    2. **默认部署目录问题**:Eclipse 默认将应用程序部署到 `wtpwebapps` 目录下,而 Tomcat 默认的部署目录为 `webapps`。如果二者不一致,会导致访问失败。 3. **Tomcat 服务未启动**:访问失败的原因还可能是 ...

    net.sf.eclipse.tomcat_9.0.1.jar 该插件可支持Eclipse4.6的版本

    对于"eclipse4.6 安装插件 tomcat"这个标签,我们可以理解为如何在Eclipse 4.6中安装和使用Tomcat插件。通常,Eclipse插件的安装可以通过以下步骤进行: 1. 打开Eclipse,进入“帮助”(Help)菜单,选择“Eclipse ...

    Eclipse+Tomcat+MySql搭建javaweb开发环境借鉴.pdf

    Eclipse+Tomcat+MySql搭建javaweb开发环境借鉴 在本文中,我们将详细介绍如何搭建一个完整的Java Web开发环境,包括Eclipse、Tomcat和MySql的安装和配置。对于初学者来说,搭建开发环境是一个门槛,特别是在没有...

    eclipse整合tomcat插件

    9. **错误处理**:当遇到问题时,Eclipse会显示错误详情,帮助开发者定位和解决问题,减少了在Eclipse和Tomcat之间反复切换的困扰。 10. **版本兼容性**:注意检查Eclipse版本和Tomcat版本之间的兼容性,以及插件...

    eclipse+tomcat环境配置

    【eclipse+tomcat环境配置】是开发...在实际开发过程中,还需要注意版本兼容性问题,例如eclipse与Tomcat版本的匹配,以及JDK版本对Tomcat支持的情况。只有做好这些基础工作,才能保证Java Web项目的顺利开发和调试。

    eclipse-tomcat插件

    此外,了解Servlet和JSP的基本概念,以及Maven或Gradle等构建工具的使用,对于高效地使用Eclipse-Tomcat插件开发Java Web应用至关重要。 总之,Eclipse-Tomcat插件通过整合Tomcat服务器的功能于Eclipse IDE中,使得...

    搭建 Eclipse Tomcat Oracle开发环境全程详解

    将Oracle 10g安装目录下的classes12.jar驱动文件复制到Tomcat的common/lib目录,这样Tomcat就可以识别并连接到Oracle数据库。在Tomcat管理界面(http://localhost:8000/admin)中,以zhaobz/12345登录,创建一个新的...

    eclipse中的tomcat插件

    **二、使用Eclipse管理Tomcat** 1. **启动/停止Tomcat**:在"Server"视图中,选中Tomcat服务器,双击或者右键选择"Start"或"Stop",可以启动或停止服务器。启动时,Eclipse会监控Tomcat的日志,便于实时查看运行...

    eclipse集成tomcat插件

    eclipse中部署web项目到tomcat中的插件,解压资源文件com.sysdeo.eclipse.tomcat_3.3.0.rar 到eclipse-plugin目录下,重启eclipse即可。然后在window-preferences-tomcat下配置下tomcat即可。

    Eclipse下Tomcat插件——com.sysdeo.eclipse.tomcat_3.2.1

    Eclipse是一款广泛使用的Java集成开发环境(IDE),它支持多种扩展和插件,极大地提高了开发者的效率。在Java Web开发中,Tomcat是一款流行的开源应用服务器,主要用于运行Servlet和JSP应用。为了方便开发者在...

    eclipse+tomcat+axis下创建WebService

    在本文中,我们将深入探讨如何在 Eclipse 集成开发环境中,利用 Tomcat 服务器和 Axis 插件创建并发布一个 WebService。这是一个详细步骤的指南,涵盖了从环境准备到测试 WebService 的全过程。 首先,我们需要确保...

    关于中文版的Eclipse+tomcat+MyEclipse配置

    在IT行业中,集成开发环境(IDE)是程序员的得力工具,Eclipse、Tomcat和MyEclipse...提供的"关于中文版的Eclipse+tomcat+MyEclipse配置.txt"文件可能包含更详细的步骤和注意事项,建议参照学习,以确保配置过程无误。

Global site tag (gtag.js) - Google Analytics