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/ 아래에 있습니다.

로그인하면 댓글을 남길 수 있습니다.
  • captcha_적용시_sound_출력_오류_문제.txt
  • 마지막으로 수정됨: 2018/06/01 16:49
  • 저자 koov