ObjectInputStream дает StreamCorruptedException

1

Я хочу преобразовать inputStream (HttpRequest.getInputStream()) в объект.

try {
        ObjectInput ois = new ObjectInputStream (inputStream);
        resObject= ois.readObject();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

inputStream содержит xml в виде String.

Теги:
httprequest
objectinputstream

1 ответ

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

Нельзя напрямую использовать ObjectInputStream здесь, потому что он ожидает сериализованный объект, а не строку XML.

То, что вы, вероятно, могли бы сделать, - это unmarshal содержимое входного потока в желаемый объект с использованием API-интерфейсов привязки unmarshaller/Java XML. как JAXB и немало других API-интерфейсов.

Образец ссылки, чтобы вы начали с этого: Ссылка на учебные пособия И unmarshalling вообще: ссылка java.net, которая также имеет небольшое объяснение.

Надеюсь это поможет.

  • 1
    Что делать, если данные не XML, а просто символьные данные. Как я могу преобразовать их в объект
  • 0
    Тогда вам нужен метод обработки этих данных. Зависит от того, какой тип данных отправляется. Для XML: Unmarshal, JSON: Использовать библиотеку GSON. Какой бы путь вы ни выбрали, вам нужно десериализовать полученные данные в объект Java. Или же, анализируйте символьные данные вручную и извлекайте информацию для заполнения экземпляров объекта.

Ещё вопросы

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