首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Websphere上使用jackson-dataformat-xml

在Websphere上使用jackson-dataformat-xml
EN

Stack Overflow用户
提问于 2019-12-06 11:21:41
回答 2查看 206关注 0票数 0

我正在尝试使用jackson-dataformat-xml从字符串中读取XML:

代码语言:javascript
复制
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上都会出现以下错误

代码语言:javascript
复制
[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]

有什么想法吗?

我在我的项目中使用以下依赖项:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2020-01-31 13:34:36

使用Woodstox解析器

如果您使用的是独立客户端,则必须在java命令行上为客户端设置这些相同的属性,如下所示:

代码语言:javascript
复制
-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
票数 1
EN

Stack Overflow用户

发布于 2021-05-08 18:58:12

您可以使用Woodstox解析器。如果您想在创建XmlMapper时设置和配置解析器,可以使用以下代码:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59206397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档