oracle.jbo.NoObjException: JBO-25003: объект <ObjectName>типа DataControl не найден - PullRequest
1 голос
/ 14 марта 2019

Я получаю следующее исключение при попытке запустить Oracle ADF на Tomcat 8.5.24 и JRE 1.8.0_201.

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. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 23 марта 2019

Я нашел небольшой обходной путь для этой ошибки программно, используя следующий код;

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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...