3 Replies Latest reply: Mar 25, 2013 2:50 AM by Ajay RSS

    Mobile app based on web service data control and VO with VC runtime error

    hofespet
      Hi,

      Jdev 11.1.2.3.0 + mobile extension.
      Windows 7, 64 bit.
      Reproduceable with Android emulator but not on iOS and iOS emulator.
      I can not test on real Android device because we do not have it in our office.
      So I don't know wether this issue is related to android emulator only or to android in general.
      Also not reproduceable by Oracle support.

      I have a VO "Employees" with a VC "department_id = :departmentIdVariable" and exposed the find method for this VO via service interface in AM.
      (see demo video from https://blogs.oracle.com/shay/entry/developing_with_oracle_adf_mobile?utm_source=dlvr.it&utm_medium=facebook).
      In a ADF mobile app I create a parameter form and amx:listView like demoed in the mentioned video.
      Whenever I test this app on android emulator I get the error below.
      Exact the same page used in a second feature works fine.
      I found out that the problem only occures on the first attept (this means when I open the page on the second feature first then this will fail and the subsequent call of the first page will be successfull).
      The problem does not occure when the web service data control does not contain a method based on VC with bind variable.

      [SEVERE - oracle.adfmf.framework - AmxBindingContext - loadDataControlById] Unable to load Data Control testDataControl due to following error: ERROR [oracle.adfmf.framework.exception.AdfException] - Unable to load definition for testDataControl.Types.findEmployeesView1DepartmentIdCriteria.findCriteria.childFindCriteria.findAttribute.
      ERROR [oracle.adfmf.framework.exception.AdfException] - Unable to load definition for testDataControl.Types.findEmployeesView1DepartmentIdCriteria.findCriteria.childFindCriteria.findAttribute
      at oracle.adfmf.metadata.bean.transform.TransformCacheProvider.fetch(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)
      at oracle.adfmf.cache.SimpleCache.get(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;(Compiled Method)(Unknown Source)
      at oracle.adfmf.metadata.cache.MetaDataCache.getByLocation(Ljava/lang/String;)Loracle/adfmf/util/XmlAnyDefinition;(Unknown Source)
      at oracle.adfmf.metadata.cache.MetaDataFrameworkManager.getJavaBeanDefinitionByName(Ljava/lang/String;)Loracle/adfmf/metadata/bean/JavaBeanDefinition;(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.registerAccessorAttribute()V(Unknown Source)
      at oracle.adfmf.dc.JavaBeanObject.registerJavaBean(Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.<init>(Ljava/lang/String;Ljava/lang/String;Loracle/adfmf/metadata/bean/JavaBeanDefinition;Ljava/lang/String;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.<init>(Ljava/lang/String;Ljava/lang/String;Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.registerAccessorAttribute()V(Unknown Source)
      at oracle.adfmf.dc.JavaBeanObject.registerJavaBean(Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.<init>(Ljava/lang/String;Ljava/lang/String;Loracle/adfmf/metadata/bean/JavaBeanDefinition;Ljava/lang/String;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.<init>(Ljava/lang/String;Ljava/lang/String;Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.registerAccessorAttribute()V(Unknown Source)
      at oracle.adfmf.dc.JavaBeanObject.registerJavaBean(Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.<init>(Ljava/lang/String;Ljava/lang/String;Loracle/adfmf/metadata/bean/JavaBeanDefinition;Ljava/lang/String;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.<init>(Ljava/lang/String;Ljava/lang/String;Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.VirtualJavaBeanObject.registerAccessorAttribute()V(Unknown Source)
      at oracle.adfmf.dc.JavaBeanObject.registerJavaBean(Loracle/adfmf/metadata/bean/JavaBeanDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.ws.WebServiceObject.registerBean(Loracle/adfmf/metadata/dcx/AdapterDataControlDefinition;Loracle/adfmf/metadata/dcx/soap/SoapDefinitionDefinition;)V(Unknown Source)
      at oracle.adfinternal.model.adapter.webservice.WSDefinition.loadDataControlDefinition(Loracle/adfmf/metadata/dcx/AdapterDataControlDefinition;)V(Unknown Source)
      at oracle.adfmf.dc.GenericJavaBeanDataControlAdapter.loadDataControl(Ljava/lang/String;)V(Unknown Source)
      at oracle.adfmf.dc.ws.WebServiceDataControlAdapter.setDataProvider(Ljava/lang/Object;)V(Unknown Source)
      at oracle.adf.model.adapter.DataControlFactoryImpl.createDataControl(Loracle/adfmf/bindings/dbf/AmxBindingContext;Loracle/adfmf/util/XmlAnyDefinition;Ljava/util/Map;)Loracle/adfmf/bindings/DataControl;(Unknown Source)


      Does anyone has seen the above error ?
      I have recreated the model and mobile app more than 20 times, re-installed Jdev, re-created Jdev settings (integrated WLS & Co), ran the web services on a different machine.
      On my site this problem is 100% reproduceable with android emulator.


      regards
      Peter
        • 1. Re: Mobile app based on web service data control and VO with VC runtime error
          Joe Huang-Oracle
          Hi, Peter, this could be an issue with proxy server setting. Are you behind a firewall when you test this?

          iOS simulator would use Mac's proxy setting. Android Emulator has its own proxy setup - it's a bit complicated to get to and varies based on the Android emulator you are using. For 4.1 emulator (you should always use 4.x or above emulators), you would need to go into the emulator itself, and go to settings - Wireless & Networks - click More... - Mobile Networks - Access Point Names. You should see an Access point used by the emulator to simulate network connection. Mine says "T-Mobile US". You click on it, and then you can select the proxy attribute and set it according to your office's settings.

          Hope that resolves the issue.

          Thanks,

          Joe Huang
          • 2. Re: Mobile app based on web service data control and VO with VC runtime error
            hofespet
            Hi Joe,

            I use android emulator 4.0.3, API level 15.
            There are no proxy settings on the emulator.
            I tested in my company which is behind a firewall. The emulator is running on the same machine as Jdeveloper and WLS
            I tested with IP 10.0.2.2 in the URL of the web service data control and the "real" IP adress of my machine.
            I also ran the web service on a different machine within the companies network.

            If this issue is somehow proxy related then I do not understand why this issue only happens with the first attempt but not for subsequent accesses to the web service.
            And further I do not understand why this only happens with VC and bind variable.

            I'll test with proxy settings next week.

            regards
            Peter
            • 3. Re: Mobile app based on web service data control and VO with VC runtime error
              Ajay
              Did the issue got resolved for u. i am also facing the issue.

              pls help if u have resolved it.