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

1

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

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

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

Теги:
web-services
encoding

1 ответ

1
Лучший ответ

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню