当我尝试在Tomcat 8.5.24和JRE 1.8.0_201上运行Oracle ADF时,出现以下异常。
oracle.jbo.NoObjException: JBO-25003: Object <ObjectName> of type DataControl is not found.
at oracle.adf.model.binding.DCIteratorBinding.getCheckedDataControl(DCIteratorBinding.java:2880)
at oracle.adf.model.binding.DCIteratorBinding.internalGet(DCIteratorBinding.java:5206)
at oracle.adf.model.binding.DCExecutableBinding.get(DCExecutableBinding.java:119)
at javax.el.MapELResolver.getValue(MapELResolver.java:62)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at oracle.adf.share.el.VariableResolverELContext$1.getValue(VariableResolverELContext.java:51)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at oracle.adf.share.el.OracleExpressionEvaluatorImpl.evaluate(OracleExpressionEvaluatorImpl.java:148)
at oracle.adf.share.el.OracleExpressionEvaluatorImpl.evaluate(OracleExpressionEvaluatorImpl.java:103)
at oracle.adf.share.el.OracleExpressionEvaluatorImpl.evaluateHandleNull(OracleExpressionEvaluatorImpl.java:84)
at oracle.adf.model.binding.DCUtil.elEvaluate(DCUtil.java:847)
at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1529)
at oracle.adf.model.binding.DCParameter.internalEvaluateExpresion(DCParameter.java:276)
at oracle.adf.model.binding.DCParameter.evaluateValue(DCParameter.java:80)
at oracle.adf.model.binding.DCParameter.getValue(DCParameter.java:115)
at oracle.adf.model.binding.DCBindingContainer.getChildByName(DCBindingContainer.java:2818)
at oracle.adf.model.binding.DCBindingContainer.internalGet(DCBindingContainer.java:2870)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.internalGet(FacesCtrlSearchBinding.java:5769)
at oracle.adf.model.binding.DCExecutableBinding.get(DCExecutableBinding.java:119)
at javax.el.MapELResolver.getValue(MapELResolver.java:62)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at oracle.adf.share.el.VariableResolverELContext$1.getValue(VariableResolverELContext.java:51)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
当我打印BindingContext.keySet()
的键时,看到找不到的<ObjectName>
,但它具有以下名称结构<ObjectName>@<Path_to_databindings>_DataBindings_cpx
。任何帮助将不胜感激。
答案 0 :(得分:0)
我使用以下代码以编程方式找到了解决此错误的小方法;
BindingContext bc = // Load BindingContext
for (Object k:bc.keySet()) {
if(k.toString().endsWith("@<Path_to_databindings>_DataBindings_cpx")) {
String newKey = k.toString().substring(0, k.toString().indexOf('@'));
bc.put(newKey, bc.get(k));
}
}