gpt4 book ai didi

java - XMLStreamException : The namespace URI has not been bound to a prefix, IBM jre

转载 作者:行者123 更新时间:2023-11-29 04:41:38 24 4
gpt4 key购买 nike

我的项目在 tomcat 服务器上运行良好,现在我正在尝试在 WebSphere Liberty Profile(WLP) 上运行项目,但它给我以下 stax 实现错误

     javax.xml.stream.XMLStreamException: The namespace URI "http://www.example.com/ns1" has not bound to a prefix.
at com.ibm.xml.xlxp.api.stax.msg.StAXMessageProvider.throwXMLStreamException(StAXMessageProvider.java:59)
at com.ibm.xml.xlxp.api.stax.XMLStreamWriterBase.writeAttribute(XMLStreamWriterBase.java:464)
at com.ibm.xml.xlxp.api.stax.XMLOutputFactoryImpl$XMLStreamWriterProxy.writeAttribute(XMLOutputFactoryImpl.java:157)
at org.apache.olingo.odata2.core.ep.producer.XmlMetadataProducer.writeAnnotationAttributes(XmlMetadataProducer.java:599)
at org.apache.olingo.odata2.core.ep.producer.XmlMetadataProducer.writeMetadata(XmlMetadataProducer.java:134)

我已经在 WLP 中将类加载器策略设置为父级最后。如何在IBM jre中实现stax

最佳答案

IBM JRE 确实包含 STAX,它是 Java SE 的一部分。

writeAttribute 的 Javadoc建议如果您使用尚未绑定(bind)到前缀的 namespace 编写属性,则预计会出现此异常。如果没有关于您打算编写的文档的更多信息,我无法确认是否属于这种情况。

如果是这种情况,您要么需要修复您正在编写的文档,以便它在您使用命名空间之前为命名空间设置前缀,要么设置 javax.xml.stream.isRepairingNamespaces您的输出工厂的属性为 true在创建 XMLStreamWriter 之前。

按照 Javadoc 中的示例:

xmlOutputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));

我不知道为什么这适用于 tomcat 而不是 liberty。有关 IBM 的 STAX 实现的更多信息,请参阅 Knowledge Center .

关于java - XMLStreamException : The namespace URI has not been bound to a prefix, IBM jre,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38970894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com