我们的生产系统和一些测试系统存在问题。我们在视图中出现间歇性的Grails异常。
没有方法签名:static org.apache.commons.lang.StringUtils.isNotBlank()适用于参数类型:(null)values:[null]可能的解决方案:isNotBlank(java.lang.String),isBlank( java.lang.String中)
错误似乎表明Grails似乎无法弄清楚它应该使用StringUtils.isNotBlank(String)应该在传递null时使用。
我们注意到:
我不确定Grails版本是什么或如何检查它。如果您在下面评论如何找到它,我很乐意使用Grails版本编辑问题。
答案 0 :(得分:0)
我可以通过运行:
在控制台中重现这一点org.apache.commons.lang.StringUtils.isNotBlank((Object)null) => Your Error
传递null只允许编译器将null强制转换为String:
org.apache.commons.lang.StringUtils.isNotBlank(null) => false
传入的任何内容都可能是严格类型为String以外的其他内容但是为null。 Groovy编译器非常聪明地强制类型,但我已经看到它在一些简单的情况下爆炸了。如果使用@CompileStatic和/或使用本机Java对象,则尤其如此。
答案 1 :(得分:0)
一个可靠的解决方法是我们重新启动应用程序。
可怕的答案,我知道。我每次都觉得很脏。
答案 2 :(得分:0)
我最近也经历过这一点。事实证明,我们有一段代码在Long中传递给StringUtils.isNotEmpty()。对此方法进行的每个后续调用都具有String值null,并使用相同的MissingMethodException进行错误。
您可以通过执行...
轻松复制此内容<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.7"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.2"
android:background="@android:color/transparent">
</LinearLayout>
</LinearLayout>
在剪切上面的BOTH调用中出错。