Captcha 적용시 sound 출력 오류 문제
증상
16:24:38,295 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/portal].[CaptchaServlet]] (AJP-THREAD-202) JBWEB000236: Servlet.service() for servlet CaptchaServlet threw exception: java.lang.RuntimeException: javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream at nl.captcha.audio.Sample.<init>(Sample.java:48) [simplecaptcha-1.2.1.jar:] at nl.captcha.util.FileUtil.readSample(FileUtil.java:47) [simplecaptcha-1.2.1.jar:] at nl.captcha.audio.producer.RandomNumberVoiceProducer.getVocalization(RandomNumberVoiceProducer.java:89) [simplecaptcha-1.2.1.jar:] at nl.captcha.audio.AudioCaptcha$Builder.build(AudioCaptcha.java:108) [simplecaptcha-1.2.1.jar:] ... Caused by: javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1119) [rt.jar:1.7.0_80] at nl.captcha.audio.Sample.<init>(Sample.java:45) [simplecaptcha-1.2.1.jar:] ... 61 more
원인
JBoss 상에서 Captcha 적용된 서비스 운영시 음성듣기(sound)효과를 사용하면 아래와 같은 오류가 발생하면서 정상 동작하지 않는 경우가 있다.
이것은 .wav
형식은 EAP 6.x에서 기본적으로 지원되지 않기 때문에 발생하는 문제이다.
해결방법
1) {$EAP_HOME}/modules/system/layers/base/sun/jdk/main/modules.xml
을 열어 아래 내용을 추가
<path name="com/sun/media"/> <path name="com/sun/media/sound"/>
2) 다음 파일을 {$EAP_HOME}/modules/system/layers/base/sun/jdk/main/service-loader-resources/META-INF/services/
디렉토리로 복사
javax.sound.sampled.spi.AudioFileReader javax.sound.sampled.spi.AudioFileWriter javax.sound.sampled.spi.FormatConversionProvider javax.sound.sampled.spi.MixerProvider
이 파일들은 JDK의 rt.jar
또는 /jre/lib/resources.jar
안에 /META-INF/services/
아래에 있습니다.
참조링크
로그인하면 댓글을 남길 수 있습니다.