0 Replies Latest reply on Jan 17, 2020 10:10 AM by Perevertkin M A

    ADF 12.2.1.4 + BeanDataControl + extend ListOfValuesModel get java.lang.ClassNotFoundException: oracle.adf.view.rich.model.ListOfValuesModel.ListType

    Perevertkin M A

      In 12.2.1.4 version if create custom Datacontrol(Bean DataControl) with ListOfValuesModel attribute, i have got error:

       

      <oracle.adf.model> <AttributeDefImpl> <init> <[70] Warning....Ignoring class not found for attribute type. Defaulting to java.lang.Object...>

      <oracle.adf.model> <AttributeDefImpl> <init> <[71] oracle.jbo.domain.DataCreationException: JBO-25029: Domain class oracle.adf.view.rich.model.ListOfValuesModel.ListType not found.

      at oracle.jbo.common.JBOClass.findDataClass(JBOClass.java:264)

      ...

      ## Detail 0 ##

      java.lang.ClassNotFoundException: oracle.adf.view.rich.model.ListOfValuesModel.ListType

      ...

      ## Detail 0 ##

      java.lang.ClassNotFoundException: org.apache.myfaces.trinidad.model.LocalRowKeyIndex.Confidence

      ...

      ## Detail 0 ##

      java.lang.ClassNotFoundException: org.apache.myfaces.trinidad.model.LocalRowKeyIndex.LocalCachingStrategy

      ...

      Note: ListType,Confidence,LocalCachingStrategy it' Enum's, and they exists in adf-richclient-api-11.jar.

       

      But if run this project in 12.2.1.3 or use ListOfValuesModel  in bean, all work properly.

      Project link: https://drive.google.com/file/d/10s_exuy7LEQvmLGOQX3rKu2ahKnEyEr8/view?usp=sharing

       

      Example Bean DataContol:

      package view;


      import oracle.adf.view.rich.model.ListOfValuesModel;

      public class CustomDC {

         private ListOfValuesModel listOfValuesModel;
        private String test;

        public CustomDC() {

         super();

        if (listOfValuesModel == null) {

        listOfValuesModel = new ListOfValuesModelImpl();
         }

        }

       

         public void setTest(String test) {

         this.test = test;
         }

       

         public String getTest() {

         return "TEST!!";
         }

       

         public void setListOfValuesModel(ListOfValuesModel listOfValuesModel) {

         this.listOfValuesModel = listOfValuesModel;
         }

       

         public ListOfValuesModel getListOfValuesModel() {

         if (listOfValuesModel == null) {

        listOfValuesModel = new ListOfValuesModelImpl();
         }

         return listOfValuesModel;
         }

      }

       

      Example Bean ListOfValuesModelImpl:

      package view;


      import java.util.Collections;
      import java.util.List;

      import oracle.adf.view.rich.model.ListOfValuesModel;
      import oracle.adf.view.rich.model.QueryDescriptor;
      import oracle.adf.view.rich.model.QueryModel;
      import oracle.adf.view.rich.model.TableModel;


      public class ListOfValuesModelImpl extends ListOfValuesModel {

         private QueryDescriptor queryDescriptor;
        
        public ListOfValuesModelImpl() {

        System.out.println("constructor for ListOfValuesModelImpl!!!!!");
         }

       

       

        @Override

         public List<Object> autoCompleteValue(Object object) {

         // TODO Implement this method
         return Collections.emptyList();
         }

       

        @Override

         public List<? extends Object> getItems() {

         return Collections.emptyList();
         }

       

        @Override

         public QueryDescriptor getQueryDescriptor() {

         return null;
         }

       

        @Override

         public QueryModel getQueryModel() {

         return null;
         }

       

        @Override

         public List<? extends Object> getRecentItems() {

         return Collections.emptyList();
         }

       

        @Override

         public TableModel getTableModel() {

         return null;
         }

       

        @Override

         public boolean isAutoCompleteEnabled() {

         return false;
         }

       

        @Override

         public void performQuery(QueryDescriptor queryDescriptor) {

         }

       

        @Override

         public void valueSelected(Object object) {

         }

       

      }