oracle.jbo.NoObjException:JBO-25003:Object 找不到类型DataControl

问题描述 投票:1回答:1

当我尝试在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。任何帮助,将不胜感激。

java oracle jsf-2.2 oracle-adf
1个回答
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));
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.