You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Johnny Tolliver <jx...@ornl.gov> on 2006/02/23 21:38:40 UTC
Access permission exceptions when calling RMI from within Tomcat
servlet.
I have a simple RMI server that I need a Tomcat servlet to access.
A very simple command-line app accesses the RMI server just fine with the
following code:
registry = LocateRegistry.getRegistry (host);
xxx = (XXX) registry.lookup (name);
But when I move the same code into my servlet I get strange access permission
exceptions. The exception traces back to a "caused by" access denied having to
do with java.util.logging.LoggingPermission, which eventually leads back to
some JULI code.
Any ideas what's going on here? Thanks. The full stacktrace is here:
(Actually, the RMI registry call is made from a thread that was launched by a
servlet, but the point is that it is in Java code launched by and running
under the control of Tomcat.)
Exception in thread "Thread-36" java.lang.ExceptionInInitializerError
at sun.rmi.transport.tcp.TCPEndpoint.<clinit>(TCPEndpoint.java:104)
at java.rmi.registry.LocateRegistry.getRegistry(LocateRegistry.java:158)
at java.rmi.registry.LocateRegistry.getRegistry(LocateRegistry.java:106)
at java.rmi.registry.LocateRegistry.getRegistry(LocateRegistry.java:89)
at gov.sensornet.rftrax.VandyPositionClient.<init>(VandyPositionClient.java:53)
at gov.sensornet.rftrax.SocketHandlerThread.<init>(SocketHandlerThread.java:68)
at gov.sensornet.rftrax.SocketAcceptThread.run(SocketAcceptThread.java:119)
Caused by: java.security.AccessControlException: access denied (java.util.logging.LoggingPermission control)
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.util.logging.LogManager.checkAccess(LogManager.java:927)
at java.util.logging.Logger.setParent(Logger.java:1331)
at org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:377)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.juli.ClassLoaderLogManager.doSetParentLogger(ClassLoaderLogManager.java:375)
at org.apache.juli.ClassLoaderLogManager.addLogger(ClassLoaderLogManager.java:120)
at java.util.logging.Logger.getLogger(Logger.java:232)
at sun.rmi.runtime.Log$LoggerLogFactory.createLog(Log.java:154)
at sun.rmi.runtime.Log.getLog(Log.java:121)
at sun.rmi.transport.Transport.<clinit>(Transport.java:43)
... 7 more
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)
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.Thread.setContextClassLoader(Thread.java:1306)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557)
at java.lang.Thread.run(Thread.java:595)
Johnny S. Tolliver
Oak Ridge National Laboratory
tolliverjs@ornl.gov, 865-574-1305
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org