0
我用下面的Grails代码来呈现的SomeClass
-objects集合作为XML:Grails“render as XML”抛出java.lang.NullPointerException - 我做错了什么?
def someObjects = SomeClass.findAllByFoo(foo)
if (someObjects) {
render(contentType:"text/xml", text:someObjects as XML)
}
可正常工作的大部分时间。然而,有时并取决于someObjects代码失败,出现以下NullPointerException
内容(请注意,someObjects != null
):
java.lang.NullPointerException
at grails.converters.XML.getElementName(XML.java:128)
at grails.converters.XML.convertAnother(XML.java:163)
at grails.converters.XML.convertAnother(XML.java:163)
at grails.converters.XML.convertAnother(XML.java:163)
at grails.converters.XML.render(XML.java:111)
at grails.converters.XML.toString(XML.java:281)
at project.SomethingController$_closure8.doCall(project.SomethingController:217)
at project.SomethingController$_closure8.doCall(project.SomethingController)
at java.lang.Thread.run(Thread.java:637)
这是SomeClass
类的定义:
class SomeClass {
List<A> a = new ArrayList<A>()
List<B> b = new ArrayList<B>()
List<C> c = new ArrayList<C>()
static hasMany = [a : A, b : B, c : C]
}
我已经发现异常,可以通过改变SomeClass
定义简单地回避:
class SomeClass {
def a = new ArrayList<A>()
def b = new ArrayList<B>()
def c = new ArrayList<C>()
static hasMany = [a : A, b : B, c : C]
}
我的问题1 ons是:
- 我在与“呈现为XML”的交互中做错了什么?预计NPE在这里吗?
- 为什么后者的SomeClass定义有效,而前者没有?