代码之家  ›  专栏  ›  技术社区  ›  shazin

oracle.jbo.noobjeption异常:JBO-25003:找不到DataControl类型的Object<ObjectName>

  •  1
  • shazin  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  0
  •   shazin    7 年前

    我找到了一个小的解决方法,这个错误的程序使用以下代码;

    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));
        }
    }
    
    推荐文章