2011-10-10 2 views
1

소리를 녹음하기위한 애플릿을 만들었습니다. 데이터 라인을 열려고하면 예외가 발생합니다.자체 서명 사운드 레코더 애플릿의 보안 예외

TargetDataLine.open()

java.security.AccessControlException : 액세스 거부 (javax.sound.sampled.AudioPermission 기록)

내 애플릿 자체, 다른 모든 jar 파일은 자체 서명입니다 서명입니다.

이전에 다른 스레드를 사용하여 TargetDataLine을 시작하고 회선을 닫습니다. 사후에 다른 스레드를 만드는 대신 Executorservice으로 전환했습니다. 그것은 스레드와 함께 잘 작동하지만 ExecutorService 예외를 throw합니다.

답변

2

자바 스크립트에서 호출이있을 때 executor 서비스가 새 스레드를 시작하기 때문에 스레드의 보안 레벨은 javascript 스레드의 보안 레벨로 설정됩니다.

따라서 AccessControl.doPrivilaged를 사용하면 문제를 해결하는 데 도움이됩니다. Explained here how to do it.