xmlInputFactory.createXMLStreamReader дает нулевое значение в Weblogic

Я пытаюсь создать некоторый контент XML в моем веб-приложении. Для этого я использовал JAXB.

JAXBContext jaxbContext = JAXBContext.newInstance(QueryRequest.class);

        XMLInputFactory xif = XMLInputFactory.newInstance();
        xif.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, false);
        StreamSource source = new StreamSource(new ByteArrayInputStream(
                queryRequestXml.getBytes()));

        XMLStreamReader xsr = xif.createXMLStreamReader(source);

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

        QueryRequest queryRequest = (QueryRequest) jaxbUnmarshaller
                .unmarshal(xsr);

Проблема, с которой я сталкиваюсь, заключается в том, что в JBOSS,Tomcat работает нормально. Но как только я перевожу свое приложение в Weblogic, я получаю xif.createXMLStreamReader(source); как ноль.

Любая идея о том, как это исправить.

1 ответ

Решение

Оказывается, что упаковка входного потока в StreamSource вызывает проблему. После удаления ваш код становится:

JAXBContext jaxbContext = JAXBContext.newInstance(QueryRequest.class);
XMLInputFactory xif = XMLInputFactory.newInstance();
xif.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, false);
InputStream source = new ByteArrayInputStream(queryRequestXml.getBytes());
XMLStreamReader xsr = xif.createXMLStreamReader(source);

И это должно работать сейчас!

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