LINUX.ORG.RU

Java Spring: Permission denied при воспроизведении аудио файла

 ,


0

1

Привет всем. Может кто подскажет, запихал в Spring проигрывание аудио файла:

[code=java]

@GetMapping("/music")
public String music(Model model) throws UnsupportedAudioFileException, IOException, LineUnavailableException {

    File soundFile = new File("/opt/tomcat/st.wav");
    AudioInputStream ais = AudioSystem.getAudioInputStream(soundFile);
    Clip clip = AudioSystem.getClip();
    clip.open(ais);
    clip.setFramePosition(0);
    clip.start();

    return "music";
}

[/code]

Но TomCat сваливает в ошибку Permission denied:

2023-08-21 04:33:28.263 ERROR 30475 — [nio-8080-exec-1] o.s.b.w.servlet.support.ErrorPageFilter : Forwarding to error page from request [/music] due to exception [/opt/tomcat/st.wav (Permission denied)]

java.io.FileNotFoundException: /opt/tomcat/st.wav (Permission denied)


в новых версиях томкета доступ к файлам за пределами ресурсов приложения нужно специально дополнительно разрешать, обычно это делается либо на уровне переменных systemd скрипта либо на уровне конфигов томкета

Syncro ★★★★★
()
  1. Оберни в try-catch блок и собери полный трейс, где будет полное сообщение об ошибке
  2. Файл не найден по такому пути, нет прав на чтение, органичение среды что @Syncro заметил либо нет доступа к устройству воспроизведения.

Чтобы понять реальную ошибку см п. 1.

alex0x08 ★★★
()

Не стал мучаться, забираю файл с ресурсов. Но опять косяк какой-то, в Идеи запускаю всё работает, на прод выкладываю на Ubuntu, и при проигрывании ошибка. Файл вроде под параметры подходит, на тесте играет, а на проде нет ((

java.lang.IllegalArgumentException: No line matching interface Clip supporting format PCM_SIGNED unknown sample rate, 16 bit, stereo, 4 bytes/frame, big-endian is supported.

Skail
() автор топика
Ответ на: комментарий от Skail

на прод выкладываю на Ubuntu

Погоди, ты выкладываешь прям на сервер приложение, которое проигрывает звуковой файл.

Сервер и «проигрывание аудио» - не чувствуешь нестыковки?

alex0x08 ★★★
()