【问题标题】:Grails NoClassDefFoundError: nu/xom/SerializerGrails NoClassDefFoundError: nu/xom/Serializer
【发布时间】:2012-11-07 20:13:45
【问题描述】:

我正在尝试通过以下方式在 Grails 中将 JSON 转换为 XML:

import net.sf.json.JSONObject
import net.sf.json.xml.XMLSerializer
...

String convertToXmlString(jsonString) {
    JSONObject json = JSONObject.fromObject(jsonString)
    String xml = new XMLSerializer().write( json )

    return xml
}

但是当我尝试运行代码时出现异常:

Caused by: java.lang.ClassNotFoundException: nu.xom.Serializer
    at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

我以前没有遇到过这样的事情。我不是在导入所有必要的类吗?我已将json-lib jar 导入我的/lib 文件夹,然后运行grails compile --refresh-dependencies。我还需要运行另一个步骤吗?

我对转换 JSON/maps -> XML/strings 和返回的其他方式持开放态度,但这个问题似乎应该很容易解决。

【问题讨论】:

标签: xml json grails


【解决方案1】:

您可以使用 grails.converters 来完成此操作:

import grails.converters.JSON
import grails.converters.XML

def o = JSON.parse("{ foo: 'bar' }") // creates a JSONObject
def x = o as XML // creates an XML
println x
def s = x as String // create the String representing the XML
println s

结果如下:

<?xml version="1.0" encoding="UTF-8"?><map><entry key="foo">bar</entry></map>
<?xml version="1.0" encoding="UTF-8"?><map><entry key="foo">bar</entry></map>

【讨论】:

猜你喜欢
  • 2011-02-15
  • 2017-07-22
  • 2017-11-17
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多