2011-10-25 3 views
0

리드에서 (부두 8에서 실행) :getClassLoader를()의 ServletContext 나는 다음을 수행하려고 해요 AccessControlException가

java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader) 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374) 
at java.security.AccessController.checkPermission(AccessController.java:546) 
at org.eclipse.jetty.server.handler.ContextHandler$Context.getClassLoader(ContextHandler.java:2179) 
at com.example.FooListener.contextInitialized(FooListener.java:69) 
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:672) 
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:403) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:664) 

은 무엇인가 :

public class FooListener implements ServletContextListener { 
    public void contextInitialized(ServletContextEvent event) { 
    event.getServletContext().getClassLoader(); 
    } 
} 

이것은 내가 갖는 것입니다 그것에 대해 해결할 수있는 방법에 대해?

+0

제한 사항은 API 문서 ('Class.getClassLoader'와 유사 함)에 설명되어 있습니다. http://download.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getClassLoader() –

답변

2

부두는 서블릿이 할 수있는 일을 제한하는 보안 관리자로 실행됩니다 (악의적 인 코드가 서블릿 컨테이너에 불쾌한 일을 할 수 없도록).

-Djava.security.manager 

그러나주의 :이 모든 보안 검사를 꺼, 이것이 고정 더 좋은 방법이 문제를 해결 얻을 수있는 easist 것은, 보안 관리자를 전환하여 부두 시작 스크립트에서이 할 cmdline 옵션을 검색하는 것입니다 정책 파일을 향상시키기 위해,이 옵션을 찾습니다

http://download.oracle.com/javase/1.4.2/docs/guide/security/PolicyFiles.html

:

, 여기에 문서를 필요에 맞게 사용 된 정책 파일에 당신을 이끌하고 편집 할
-Djava.security.policy= 

입니다

관련 문제