2011-08-12 3 views
1

문서 스캔 용 애플릿이 있습니다 (JTwain 사용). 내 애플릿은 내가 작성한 jar와 두 번째 써드 파티 jar, dll (JTwain jar로 싸인)으로 구성된다. 애플릿을로드 한 다음 JavaScript를 사용하여 애플릿 메소드에 액세스하려고합니다. 나는 보안 예외가 그러나 나는이 작업을 수행 할 때JavaScript로 메소드에 액세스 할 때 내 애플릿이 기본 라이브러리를로드 할 수없는 이유는 무엇입니까?

나를 던지고 무엇
java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.AspriseJTwain) 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkLink(Unknown Source) 
    at java.lang.Runtime.loadLibrary0(Unknown Source) 
    at java.lang.System.loadLibrary(Unknown Source) 
    at com.asprise.util.jtwain.SourceManager.init(SourceManager.java:222) 
    at com.asprise.util.jtwain.SourceManager.<init>(SourceManager.java:36) 
    at com.asprise.util.jtwain.SourceManager.instance(SourceManager.java:28) 
    at co.altcom.cache.scanner.CacheScan.scanToPDF(CacheScan.java:91) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin.javascript.JSInvoke.invoke(Unknown Source) 
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

내가 (잘 애플릿의 init 메소드 내에서 예외 이러한 기능을 실행할 수 있다는 것입니다 - 애플릿 검사를하여 컴퓨터의 파일 시스템에 저장). 자바 스크립트로 액세스 할 때만 실패합니다. 나는 내가 설정해야 할 정책이 있다고 생각하지만, 그것에 대해 아무 것도 찾을 수 없다.

아이디어가 있으십니까?

답변

3

JS가 호출하는 코드를 AccessController.doPrivileged(PrivilegedAction) (또는 오버로드 된 변형)으로 둘러 쌉니다.

+0

브릴리언트. 정확히 내가 무엇을 찾고 있었는지. 고맙습니다. –

관련 문제