2011-10-25 10 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

jettyはサーブレットができることを制限するセキュリティーマネージャーで動作しています(悪意のあるコードがサーブレットコンテナに厄介なことをするのを避けるため)。

-Djava.security.manager 

しかし、注意してください:これは、すべてのセキュリティチェックをオフに、これは固定のより良い方法をこの問題を回避するeasist事は、セキュリティマネージャをオフにあなたの桟橋の起動スクリプトでこのコマンドラインパラメータのオプションを検索するためでありますポリシーファイルを強化するために、このオプションを探し:使用されるポリシーファイルにあなたを導き、ここでは、あなたのニーズに合わせてそれを編集します

-Djava.security.policy= 

は、ドキュメントは次のとおりです。

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

関連する問題