2

Web アプリケーションで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); nullとして。

これを修正する方法についてのアイデア。

4

1 に答える 1

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);

そして、今すぐうまくいくはずです!

于 2014-04-08T10:23:46.897 に答える