2010-03-24 188 views
0

我使用Netbeans构建应用程序并且工作正常。但是当我部署在TOMCAT上时,出现此错误javax.servlet.ServletException:用于servlet的Servlet.init()中继抛出异常

javax.servlet.ServletException: Servlet.init() for servlet Relay threw exception 
     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
     org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
     java.lang.Thread.run(Thread.java:636) 

*root cause* 

java.security.AccessControlException: access denied (java.util.PropertyPermission jasper.reports.compile.class.path write) 
     java.security.AccessControlContext.checkPermission(AccessControlContext.java:342) 
     java.security.AccessController.checkPermission(AccessController.java:553) 
     java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
     java.lang.System.setProperty(System.java:744) 
     com.servlet.Relay.init(Relay.java:38) 
     javax.servlet.GenericServlet.init(GenericServlet.java:212) 
     sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     java.lang.reflect.Method.invoke(Method.java:616) 
     org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269) 
     java.security.AccessController.doPrivileged(Native Method) 
     javax.security.auth.Subject.doAsPrivileged(Subject.java:537) 
     org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301) 
     org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) 
     org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:115) 
     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
     org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 

任何想法。

回答

2

看起来像SecurityManager被配置为阻止修改类路径。你在哪个平台上运行?并查看安全管理器配置的tomcat conf目录。

为tomcat 5.5检出these docs

我想你应该看看你是否有一个文件$CATALINA_BASE/conf/catalina.policy,如果是添加类似:

permission jasper.reports "jasper.reports.compile.class.path", "write"; 

如果你写的那类路径中的继电器的servlet,你不应该使用jasper.reports但你自己的套餐。

+0

我在WindowsXP上运行。 – 2010-03-24 13:16:06

相关问题