Попробуйте включить тип mime. В вашем опубликованном примере у вас есть это как "". Пустое изображение может быть связано с тем, что он не распознает поток как файл изображения, так как вы сделали это поле пустой строкой. Поэтому добавьте тип mime image / png или image / jpg и посмотрите, работает ли это:
String mimeType = "image/jpg";
StreamedContent file = new DefaultStreamedContent(bytes, mimeType, filename);
Единственным путем я мог думать, кроме того, для ScriptEngineManager устаревшего, Rhino
. Носорог является механизмом JavaScript, записанным в чистом Java, поэтому просто загрузите его или вставка копии от эта ссылка GitHub . Это - очень сложный путь, но вход кода JavaScript неограничен, в отличие от ScriptEngineManager, который не позволяет классы JavaScript и этажерку.