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);
И это должно работать сейчас!