元素变量在属性ColdFusion 11中未定义

元素变量在属性ColdFusion 11中未定义,coldfusion,coldfusion-11,Coldfusion,Coldfusion 11,我试图从一个java类调用一个方法,但我遇到了一个以前从未见过的异常 这就是我调用类和其中一个方法时得到的结果,以及我是如何得到这个结果的 <cfdump var="#nlp#"> <cfdump var="#nlp.run()#"> 我是否以错误的方式调用该方法?这就是我们在CF9上编写代码的方式,一切正常,但CF11似乎有问题…Java方法返回NULL,这在ColdFusion中与未定义相同。您需要捕获结果并对其进行测试 <cfset local = {}&g

我试图从一个java类调用一个方法,但我遇到了一个以前从未见过的异常

这就是我调用类和其中一个方法时得到的结果,以及我是如何得到这个结果的

<cfdump var="#nlp#">
<cfdump var="#nlp.run()#">

我是否以错误的方式调用该方法?这就是我们在CF9上编写代码的方式,一切正常,但CF11似乎有问题…

Java方法返回NULL,这在ColdFusion中与未定义相同。您需要捕获结果并对其进行测试

<cfset local = {}><!--- if inside a function, this isn't necessary --->
<cfset local.result = nlp.run() >
<cfif not isNull( local.result ) >
  <cfdump var="local.result">
<cfelse>
  NULL!
</cfif>

无效的

看起来Open\NPL
run()
方法正在生成一个异常,该异常被捕获并导致它返回
null
。请看这里:


同意其他答案,您只需测试NULL以避免CF异常,并深入Java以确定根本原因。

我理解NULL部分,但为什么它是NULL?(编辑)如果错误来自cfdump,可能是因为
run()
返回
NULL
。这对于java类来说并不少见,所以这不一定是个问题,除非您说完全相同的代码在CF9中的行为不同。忽略cfdump,您希望发生什么以及
run()是什么
CF9中的return?我支持Leigh-cfdump,它非常有用,但有时会在各种Java返回上划伤它的头。因此,基本上原始代码是这样的
,然后我们循环
结果
,在屏幕上创建输出。。。编辑:
result
是一个数组,不知道该类的任何信息,实际上无法知道它为什么返回
null
。除非是由于某种错误(请检查异常日志以确保)。如果不满足某些条件,java方法通常会返回
null
,但这是由代码本身决定的。因此,在不了解更多关于类的信息的情况下,不可能确切地说出为什么会发生这种情况(而不是在CF9下)。源代码的好发现。不知道为什么代码捕捉异常并将它们打印到stdout,而不是让它们冒泡。然后,至少打电话的应用程序会意识到有问题@地理-检查各种日志。不确定消息将在哪里结束,但它可能不会出现在标准异常日志中,因为代码正在使用
System.out.println
。我知道创建源代码的人,但不幸的是,他在过去几天不在。他就是我们CF9版本的工作人员,也是我以前的室友:)
<cfset local = {}><!--- if inside a function, this isn't necessary --->
<cfset local.result = nlp.run() >
<cfif not isNull( local.result ) >
  <cfdump var="local.result">
<cfelse>
  NULL!
</cfif>