我正在尝试使用jackson-dataformat-xml从字符串中读取XML:
String data = "<?xml version='1.0' encoding='UTF-8'?>"+
"<aa>"+
"<bb>bb</bb>"+
"</aa>";
XmlMapper xmlMapper = new XmlMapper();
JsonNode jsonNode = xmlMapper.readTree(data.getBytes());每次使用此代码调用jsp页面时,在WebSphere上都会出现以下错误
[err] java.lang.UnsupportedOperationException: XMLInputFactory ne prend pas en charge cette m□thode : "createXMLStreamReader(Source)".
[err] at com.ibm.xml.xlxp2.api.stax.msg.StAXMessageProvider.throwUnsupportedOperationException(StAXMessageProvider.java:53)
[err] at [internal classes]
[err] at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:590)
[err] at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:29)
[err] at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:857)
[err] at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2572)
[err] at com.ibm._jsp._test_2D_jack._jspService(_test_2D_jack.java:121)
[err] at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:101)
[err] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[err] at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290)
[err] at [internal classes]有什么想法吗?
我在我的项目中使用以下依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.9</version>
</dependency>发布于 2020-01-31 13:34:36
使用Woodstox解析器
如果您使用的是独立客户端,则必须在java命令行上为客户端设置这些相同的属性,如下所示:
-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
-Djavax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory
-Djavax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory发布于 2021-05-08 18:58:12
您可以使用Woodstox解析器。如果您想在创建XmlMapper时设置和配置解析器,可以使用以下代码:
XMLInputFactory ifactory = new WstxInputFactory();
ifactory.setProperty(...); // Configure parser
XMLOutputFactory ofactory = new WstxOutputFactory();
ofactory.setProperty(...); // Configure parser
XmlFactory xf = new XmlFactory(ifactory, ofactory);
// You can use a module if you need further configuration
JacksonXmlModule module = new JacksonXmlModule();
module.setDefaultUseWrapper(false);
XmlMapper mapper = new XmlMapper(xf, module); 你可以在这里找到信息:https://github.com/FasterXML/jackson-dataformat-xml#usage
https://stackoverflow.com/questions/59206397
复制相似问题