Уже закодированная строка как DataHandler

Поэтому, посмотрев аналогичный пост SO о String и DataHandlers, я столкнулся с проблемой с точки зрения эффективности. В мой веб-сервис поступает строка, которая уже закодирована. У меня есть необходимость преобразовать эту строку в DataHandler положить в POJO и отправить в другой сервис. Когда я использую new ByteArrayDataSource(String, type) это кодирование уже закодированной строки (второй раз).

Чтобы обойти это, я декодирую ввод, а затем передаю созданный byte[] в new ByteArrayDataSource(byte[], type), Я беспокоюсь о падении производительности, которое будет создаваться при необходимости декодировать и перекодировать изображения, когда у меня уже есть закодированная версия, переданная. Есть ли способ создать DataHandler (или же DataSource) из уже закодированной строки без необходимости "MIME-тип", поэтому мне не нужно декодировать для кодирования?

Я пытался использовать FileDataSource(String) но это не работает, с тем же входом, используемым в рабочем ByteArrayDataSource(byte[], String) с расшифрованными строками. Я также попытался передать пустую строку для типа, используя ByteArrayDataSource(String, type),

1 ответ

Решение

После нескольких поисков я наткнулся на библиотеку Apache, которая делает это, но я не уверен, насколько она будет более эффективной. Apache Axis2 имеет класс ConverterUtil, который, похоже, имеет множество методов двоичной манипуляции для строк.

Глядя на этот код немного больше, код для convertToDataHandler(String) просто передает строку в convertToBase64Binary(String) функция. Это просто создание нового ByteArrayDataSource из String путем его декодирования и дальнейшего продвижения вперед. Так что утилита просто оборачивает функциональность, которую я уже делаю.

Другие вопросы по тегам