Как уже отмечалось, данные изображения кодируются Base64. Чтобы получить двоичные данные, вам нужно снять заголовки типа / кодировки, а затем декодировать содержимое Base64 на двоичные данные.
String encodingPrefix = "base64,";
int contentStartIndex = dataUrl.indexOf(encodingPrefix) + encodingPrefix.length();
byte[] imageData = Base64.decodeBase64(dataUrl.substring(contentStartIndex));
Я использую org.apache.commons.codec.binary.Base64
из apache common-codec, другие декодеры Base64 должны работать также.
Вы не получили исключение только потому, что до того, как возникло исключение, ваша система акторов была прервана, а затем приложение закрывается.
Попробуйте добавить Thread.sleep(1000)
перед actorSystem.terminate()
, вы увидите исключение.
Кстати: это поведение не связано с if you use only one actor or with a child
. Вы получаете исключение, если используете ребенка только потому, что это случайное поведение, связанное с временной последовательностью.