【问题标题】:XMLSerializer throws exceptionXMLSerializer 抛出异常
【发布时间】:2012-06-26 15:15:05
【问题描述】:

我有一小段代码可以将 XML 解析为 JSON。在我引入 XMLSerializer 来获取 JSON 之前,它工作正常。

public static String convertXMLFileToString(String fileName) 
{
  try{ 
    XMLSerializer xmlSer = new XMLSerializer();
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 
    InputStream inputStream = new FileInputStream(new File(fileName)); 
    org.w3c.dom.Document doc = documentBuilderFactory.newDocumentBuilder().parse(inputStream); 
    StringWriter stw = new StringWriter(); 
    Transformer serializer = TransformerFactory.newInstance().newTransformer(); 
    serializer.transform(new DOMSource(doc), new StreamResult(stw));
    String st = stw.toString();
    JSON json = xmlSer.read(st);
    return stw.toString(); 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
    return null; 
  }

来电:

convertXMLFileToString("/home/tom/workspace/xmlToJson/files/input/sample.xml");

我正在使用 JSON-lib-2.4 和以下导入 import net.sf.json.xml.XMLSerializer; 我得到以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at convert.xmlToJson.convertXMLFileToString(xmlToJson.java:27)
at convert.xmlToJson.main(xmlToJson.java:21)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 14 more

有什么想法吗?

【问题讨论】:

  • 这是 JSON-lib 的问题,但我需要的 .read() 函数在其他库中没有实现。

标签: java xml json serialization


【解决方案1】:

JSON-lib 依赖于其他库,请参阅http://json-lib.sourceforge.net/

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

不能说您是否需要所有这些,但您的异常清楚地表明它缺少 commons-lang (http://commons.apache.org/lang/)。确保使用版本 2.x,不是较新的 3.x。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多