ADF Mobile: WebService data control method call with array

JDev 11.1.2.3
ADF Mobile deployed to Android emulator
Hello All,
I am trying to invoke a method in my Web Service data control and get the following exception
Caused by: ERROR [oracle.adfmf.framework.exception.AdfInvocationRuntimeException] - Cannot serialize: [I@1dbae822
        at oracle.adfmf.dc.ws.soap.SoapTransportLayer.invokeSoapRequest(Lorg/ksoap2/SoapEnvelope;)Ljava/lang/Object;(Unknown Source)
        at oracle.adfmf.dc.ws.soap.SoapWebServiceOperation.invoke(Ljava/lang/String;Loracle/adfmf/dc/ws/soap/SoapGenericType;)Ljava/lang/Object;(Unknown Source)
        at oracle.adfmf.dc.ws.soap.SoapWebServiceOperation.invoke(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;(Unknown Source)
        at oracle.adfmf.dc.JavaBeanOperation.execute(Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;(Unknown Source)
        at oracle.adfmf.dc.ws.WebServiceDataControlAdapter.invokeOperation(Ljava/util/Map;Loracle/adfmf/bindings/OperationBinding;)Z(Unknown Source)
        at oracle.adfmf.bindings.dbf.AmxMethodActionBinding.execute()Ljava/lang/Object;(Unknown Source) This method is an AppModule method exposed as a service interface and the parameter for this method is a List<oracle.jbo.domain.Number>. The schema definition for the input is as follows:
<element name="acceptTask">
   <complexType>
     <sequence>
            <element maxOccurs="unbounded" minOccurs="0" name="taskID" type="decimal"/>
     </sequence>
   </complexType>
</element>For the input to my binding, I have tried int[], Integer[] and List<Integer>. All of these result in similar errors.
I have also tried invoking this through a regular ADF application and that works fine with an int[]. It looks like something specific to the ADF Mobile SOAP layer.
Is this a bug or a restriction in the framework? Any workarounds that has worked for anyone?

No luck. A WS DC method call with a simple parameter (java.lang.String or java.lang.Integer) works fine but I can't get it to work when there is an array input.
I have tried WS methods with int arrays and simple string arrays without any luck. All of them result in a cannot serialize error.
I can't figure out what I am doing wrong. Are there any working WS Datacontrol samples with array inputs?

Similar Messages

  • Njawin method call with arrays

    I have a problem when calling this method in NJAWIN
    Sub AddItems(NumItems As Long, ItemIDs() As String, ClientHandles() As Long, ServerHandles() As Long, Errors() As Long, [RequestedDataTypes], [AccessPaths])The njawin created code signature looks like this:
    public void AddItems(int NumItems, ObjectRef  ItemIDs, ObjectRef  ClientHandles, ObjectRef  ServerHandles, ObjectRef  Errors) throws COMException {
            invokeN("AddItems", new Object[]{new java.lang.Integer(NumItems), ItemIDs, ClientHandles, ServerHandles, Errors}, 5);
    public void AddItems(int NumItems, ObjectRef  ItemIDs, ObjectRef  ClientHandles, ObjectRef  ServerHandles, ObjectRef  Errors, java.lang.Object RequestedDataTypes) throws COMException {
            invokeN("AddItems", new Object[]{new java.lang.Integer(NumItems), ItemIDs, ClientHandles, ServerHandles, Errors, RequestedDataTypes}, 6);
    public void AddItems(int NumItems, ObjectRef  ItemIDs, ObjectRef  ClientHandles, ObjectRef  ServerHandles, ObjectRef  Errors, java.lang.Object RequestedDataTypes, java.lang.Object AccessPaths) throws COMException {
            invokeN("AddItems", new Object[]{new java.lang.Integer(NumItems), ItemIDs, ClientHandles, ServerHandles, Errors, RequestedDataTypes, AccessPaths}, 7);
        }I tried to call one of this methodes in many different ways, but i always got this Exception.
    Exception:
    Exception in thread "main" java.lang.Error: Type cannot be marshalled to variant: class com.develop.jawin.Variant
         at com.develop.jawin.Variant.marshalInRef(Unknown Source)
         at com.develop.jawin.Variant.marshalIn(Unknown Source)
         at com.develop.jawin.UnknownPtr.invokeN(Unknown Source)
         at OPCSiemensDAAutomation.OPCItems.AddItems(OPCItems.java:131)
         at OPCSiemensDAAutomation.TestNew.<init>(TestNew.java:47)
         at OPCSiemensDAAutomation.TestNew.main(TestNew.java:56)
    Can anybody tell me, how to call this method in the right way??
    How do i create the proper ObjectRef types??
    Thx in advance...

    I have a problem when calling this method in NJAWIN
    Sub AddItems(NumItems As Long, ItemIDs() As String, ClientHandles() As Long, ServerHandles() As Long, Errors() As Long, [RequestedDataTypes], [AccessPaths])The njawin created code signature looks like this:
    public void AddItems(int NumItems, ObjectRef  ItemIDs, ObjectRef  ClientHandles, ObjectRef  ServerHandles, ObjectRef  Errors) throws COMException {
            invokeN("AddItems", new Object[]{new java.lang.Integer(NumItems), ItemIDs, ClientHandles, ServerHandles, Errors}, 5);
    public void AddItems(int NumItems, ObjectRef  ItemIDs, ObjectRef  ClientHandles, ObjectRef  ServerHandles, ObjectRef  Errors, java.lang.Object RequestedDataTypes) throws COMException {
            invokeN("AddItems", new Object[]{new java.lang.Integer(NumItems), ItemIDs, ClientHandles, ServerHandles, Errors, RequestedDataTypes}, 6);
    public void AddItems(int NumItems, ObjectRef  ItemIDs, ObjectRef  ClientHandles, ObjectRef  ServerHandles, ObjectRef  Errors, java.lang.Object RequestedDataTypes, java.lang.Object AccessPaths) throws COMException {
            invokeN("AddItems", new Object[]{new java.lang.Integer(NumItems), ItemIDs, ClientHandles, ServerHandles, Errors, RequestedDataTypes, AccessPaths}, 7);
        }I tried to call one of this methodes in many different ways, but i always got this Exception.
    Exception:
    Exception in thread "main" java.lang.Error: Type cannot be marshalled to variant: class com.develop.jawin.Variant
         at com.develop.jawin.Variant.marshalInRef(Unknown Source)
         at com.develop.jawin.Variant.marshalIn(Unknown Source)
         at com.develop.jawin.UnknownPtr.invokeN(Unknown Source)
         at OPCSiemensDAAutomation.OPCItems.AddItems(OPCItems.java:131)
         at OPCSiemensDAAutomation.TestNew.<init>(TestNew.java:47)
         at OPCSiemensDAAutomation.TestNew.main(TestNew.java:56)
    Can anybody tell me, how to call this method in the right way??
    How do i create the proper ObjectRef types??
    Thx in advance...

  • Issue with webservice data control while invokin bpel process from ADF side

    Hello Experts,
    we are creating webservice data control to invoke bpel process from ADF side.
    When I run the application and inovoke the bpel every thing is working fine.
    But when we are changeing the instances from DEV to SIT the bpel url(hostname and port) will change.
    So we just edited DataControls.dcx file and we just replaced the wsdl url and trying to run the applicaiton.
    This time the applicaiton is not invoking the bpel process.
    If I remove the webservice data control and recreate it with new WSDL url then it is working fine.
    Can any one tell us what the exact issue is. Is there any other files do i need to modify or etc.
    Thanks & Regards
    Gayaz

    DataControls.dcx & connections.xml (.adf/META-INF)

  • Issues with result data display on ADF page from a Webservice data control

    Hi,
    I created a Webservice Data control and created a JSF to display the webservice response to the screen.
    I dragged and dropped the input paramater to the JSF form.Also i did the same for the output result also.i drag & drop the result tag to the JSF(selected the read only form).
    This webservice is a complex input and output params.
    After supplying the input param to the jsf and clicked on submit, the request is going and hitting the webservice and getting proper result set also.
    But the issue is , the result is not displayed on the JSF screen.
    Is there any configuration needed to diaply the content on ths screen?
    Version - JDev 11.1.1.4.0
    Regards,
    JJ

    Dear Vinod,
    Thanks for the reply.
    How to refresh the data container ..just to press the refresh button(F5) or is there any configuration needed to auto refresh the data container?
    The following is my table definition
    <af:table rows="#{bindings.LookListRow.rangeSize}"
    fetchSize="#{bindings.LookListRow.rangeSize}"
    emptyText="#{bindings.LookListRow.viewable ? 'No data to display.' : 'Access Denied.'}"
    var="row"
    value="#{bindings.LookListRow.collectionModel}"
    rowBandingInterval="0"
    selectedRowKeys="#{bindings.LookListRow.collectionModel.selectedRow}"
    selectionListener="#{bindings.LookListRow.collectionModel.makeCurrent}"
    rowSelection="single"
    binding="#{backingBeanScope.backing_lkUp.t1}"
    id="t1" columnSelection="single">
    <af:column headerText="#{bindings.LookListRow.hints.rowAction.label}"
    sortProperty="rowAction" sortable="false"
    id="c5">
    <af:outputText value="#{row.rowAction}" id="ot4"/>
    </af:column>
    <af:column headerText="#{bindings.LookListRow.hints.FieldValue.label}"
    sortProperty="FieldValue" sortable="false"
    id="c8">
    <af:outputText value="#{row.FieldValue}" id="ot8"/>
    </af:column>
    <af:column headerText="#{bindings.LookListRow.hints.FieldName.label}"
    sortProperty="FieldName" sortable="false"
    id="c2">
    <af:outputText value="#{row.FieldName}" id="ot7"/>
    </af:column>
    <af:column headerText="#{bindings.LookListRow.hints.Description.label}"
    sortProperty="Description" sortable="false"
    id="c1">
    <af:outputText value="#{row.Description}" id="ot2"/>
    </af:column>
    <af:column headerText="#{bindings.LookListRow.hints.StatusasofEffectiveDate.label}"
    sortProperty="StatusasofEffectiveDate"
    sortable="false" id="c4">
    <af:outputText value="#{row.StatusasofEffectiveDate}"
    id="ot5"/>
    </af:column>
    <af:column headerText="#{bindings.LookListRow.hints.LanguageCode.label}"
    sortProperty="LanguageCode" sortable="false"
    id="c6">
    <af:outputText value="#{row.LanguageCode}" id="ot6"/>
    </af:column>
    <af:column headerText="#{bindings.LookListRow.hints.Version.label}"
    sortProperty="Version" sortable="false" id="c3">
    <af:outputText value="#{row.Version}" id="ot3">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.LookListRow.hints.Version.format}"/>
    </af:outputText>
    </af:column>
    Regards,
    -JJ
    Edited by: user13117752 on Jun 14, 2011 11:20 PM

  • Set  SOAP header element while invoking WS thru ADF webservice Data control

    Experts,
    I am trying to invoke/call a webservice (using ADF web service data control ) which is expecting custom element in SOAP-Header. I want to know the steps needed to set SOAP-Header custom element when using ADF web service data control. SOAP-Header custom element will be string type, something like
    <soap:Header><element1>String</element1></soap:Header>
    Thank you,
    Ashish

    Hi,
    extend the SOAPProvider class
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPMessage;
    import oracle.adf.model.adapter.AdapterException;
    import oracle.adfinternal.model.adapter.webservice.provider.soap.SOAPProvider;
    public class CustomSOAProvider extends SOAPProvider {
        public CustomSOAProvider() {
            super();
        //expose protected method to public
        public void handleRequest(SOAPMessage soapMessage) throws AdapterException {
            super.handleRequest(soapMessage);
        //Expose protetcted method to public
        public void handleResponse(SOAPMessage soapMessage) throws AdapterException {
            super.handleResponse(soapMessage);
        }And configure it in the DataControls.dcx file of your WS DC project
    <AdapterDataControl id="..."
    xmlns="http://xmlns.oracle.com/adfm/datacontrol">
    <Source>
    <definition xmlns="http://xmlns.oracle.com/adfm/adapter/webservice"
    name="..." version="1.0"
    provider="adf.sample.wsdc.CustomSOAProvider"
    wsdl="http://...">
    Frank

  • How to iterate the webservice Data control result set?

    Hi all,
    How to iterate the webservice Data control result set? I have an jsff page where I am displaying the single UserDetails by webservice DataContol. As per my design requirement I should iterate the DataControl resultSet to get the user details and push the same in to Managed bean. Please help me how to do this, any sample code please to iterate the resultset and get the data from it.
       <?xml version='1.0' encoding='UTF-8'?>
       <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:c="http://java.sun.com/jsp/jstl/core">
       <c:set var="uiBundle" value="#{adfBundle['edu.syr.oim.uiBundle']}"/>
       <af:pageTemplate viewId="/templates/jsffTemplate.jspx">
        <f:facet name="fTop"/>
        <f:facet name="fCenter">
          <af:panelGroupLayout layout="scroll" inlineStyle="width:100.0%;">
       <af:panelTabbed id="pt1">
        <af:showDetailItem text="#{uiBundle.PRIVACYFLAGS}" id="sdi4">
                <af:panelGroupLayout id="pgl4" layout="scroll">
                  <af:spacer width="10" height="10" id="s3"/>
                  <af:panelFormLayout id="pfl6">
                    <af:panelLabelAndMessage label="#{uiBundle.STUDENTEMAIL}"
                                             id="plam35">
                      <af:outputText value="#{bindings.stuEmail.inputValue}"
                                     id="ot42"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.STUDENTHOMEADDRESS}"
                                             id="plam39">
                      <af:outputText value="#{bindings.stuPermAddr.inputValue}"
                                     id="ot35"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.STUDENTHOMEPHONE}"
                                             id="plam40">
                      <af:outputText value="#{bindings.stuPermPhn.inputValue}"
                                     id="ot37"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.STUDENTCURRENTPHONE}"
                                             id="plam42">
                      <af:outputText value="#{bindings.stuCurrAddr.inputValue}"
                                     id="ot40"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.STUDENTCURRENTPHONE}"
                                             id="plam36">
                      <af:outputText value="#{bindings.stuCurrPhn.inputValue}"
                                     id="ot38"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.STUDENTACAINFO}"
                                             id="plam41">
                      <af:outputText value="#{bindings.stuAcad.inputValue}"
                                     id="ot36"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.EMPHOMEADDRESS}"
                                             id="plam38">
                      <af:outputText value="#{bindings.empPermAddr.inputValue}"
                                     id="ot39"/>
                    </af:panelLabelAndMessage>
                    <af:panelLabelAndMessage label="#{uiBundle.EMPHOMEPHONE}"
                                             id="plam37">
                      <af:outputText value="#{bindings.empPermPhn.inputValue}"
                                     id="ot41"/>
                    </af:panelLabelAndMessage>
                  </af:panelFormLayout>
                </af:panelGroupLayout>
              </af:showDetailItem>
       </af:panelTabbed> Above is my jsff code. Here how/where to add the phase listener to paopulate the managed bean while page render. Do I need to iterate the DC to get and push the each parameter in to ManagedBean or is there any easy way to do this by EL mapping directly at jsff. Please clarify.
    Thanks
    kln

    That is what exactly I am trying right now. I am binding each of my page fragment outputText item in to backing bean and by that way trying to populate the values.
    But the issue here is, the backing bean method doesn't getting any value until I hit any of the link or the button in the fragment. While loading the page the bean set and get is null. If i hit any link or button it is filled up with the vaule. As per my design, I would like to populate the bean method along with page load before any user action. But cant able to do this!! :(
    Below is my sample code what I am trying right now
            <af:panelLabelAndMessage label="#{uiBundle.NETID}" id="plam13">
                      <af:outputText value="#{bindings.netid.inputValue}" id="ot4" binding="#{UserDataBean.netId}"/>
           </af:panelLabelAndMessage>
    backing bean ex:
    private RichOutputText netId;
    static String netidVal;
        public void setNetId(RichOutputText netId) {
           netidVal= netId.getValue() == null? "":netId.getValue().toString();
           this.netId = netId;
        public RichOutputText getNetId() {
           return netId;
        public String getNetIdVal() {
           return netidVal;
        }Thanks
    kln

  • Bind an inputFile value to a data control methods parameter

    Hello I am trying to create a InputFile (ADF Faces) which is linked to a data control method. The method reads a specified file and returns the content which is then displayed in table form.
    <br><br>
    I have a filereader Class with the following method:
    <i>public List<FileInQuestion> returnFileContents(String fileName)</i>
    <br><br>
    I have created a data control based on this Class. From the JSF page, under the data control palette I can drag on may parameter 'FileName' (as input text) and my method (as command button) and finally the return type 'FileInQuestion' (as read only table). This all works fine and when I type a filename in and hit the button it displays the contents in a table.
    <br><br>
    Now the problem is that I want to base the input parameter on the value of the InputFile component. But when I drag and drop the 'fileName' parameter onto the canvas, it doesn't give me the option to create as an input file!
    <br><br>
    Please could someone tell me how I manually link (bind) the inputFile component to the 'fileName' parameter?
    <br><br>
    Sorry if a bit long winded!!
    <br><br>
    Thanks Dan
    Message was edited by:
    user593073

    Thanks Frank but I need to get at the text value returned from the inputfile component. I did what you said with the following results:
    <br><br>
    I started with a inputtext field, command button and read only table. When I entered a value (in this case 'C:\data\contacts.txt' ) into the inputtext field and hit the command button the table displayed the expected results (for logic please see my 1st post).
    <br><br>
    I then convert the inputtext component to a inputfile component in the way you suggested. I now rerun the application, browse to the same file and hit the command button, and then nothing!! no results.
    <br><br>
    I'm I missing something here?
    <br><br>
    Thanks
    <br><br>
    Dan

  • Binding LinkedList to ADF Web Service Data Control

    Hi guys,
    I would like to ask about how to bind a LinkedList (consumed from webservice) to ADF web service data control, in order to display it in JSF page. This LinkedList contains java beans that hold information I need. I've tried to ask google and search this forum, but still got no luck.
    <p>
    Yes I found article about dealing with complex input params, but seems not what I'm looking for.
    <p>
    Anybody has hint or idea on this ?
    <p>
    Thanks

    Take a look at this blog entry from Susan Duncan: Dealing with Complex Input Params in ADF Web Service Data Controls.
    It looks like what you are asking for.
    Hope it helps,
    -Eric

  • ADF Mobile webservice datacontrol parameter problem

    Hi, I have a method in my WS which has a List lista as input parameter when I create the datacontrol It shows Object instead of list,
    how can I solve this? I cannot use List<MyBean> because this is not awolled in adfmobile
    I use Jdeveloper 11.1.2.3.0
    --diego10.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi,
    1. you actually need to create an entity of the type the list objects are of. E.g. Employee to represent a list of employees
    2. You access the WS DC programmatically from Java and encapsulate it in an array of Employees (to follow my sample)
    3. You use a POJO data control to expose the array list
    private HashMap employeeListCache = null;
         * Query all employees from a Web Service and keep the value local.
         * @return Collection of Employees
        public Employees[] getAllEmployees() {       
            Employees[] emps = null;
            if (employeeListCache == null) { 
                employeeListCache = _findAllEmployees();
            emps = (Employees[])employeeListCache.values().toArray(new Employees[employeeListCache.size()]);       
            return emps;
      private HashMap _findAllEmployees() {
            try {
                //renew all employee data
                employeeListCache = new HashMap();
                //invoke WS data control from this POJO
                ArrayList parameterNames = new ArrayList();
                ArrayList parameterValue = new ArrayList();
                ArrayList parameterTypes = new ArrayList();
                //Generic representation of a data control's data provider object. It exposes meta information about
                //the providers attributes and accessors, as well as the ability to get and set their values.
                //This interface abstracts the raw data provider object from the nature of its type of data control;
                //the raw provider can be a deserialized representation of an object returned by a SOAP or REST web
                //service call, or it can be an actual java class instance. This interface is used primarily by the
                //internals of the embedded java data control framework, however it can also be used when invoking data
                //control methods directly from application java bean code.
                GenericType employeesList =
                    (GenericType)AdfmfJavaUtilities.invokeDataControlMethod("HrWSDC", null, "getEmployeesFindAll",
                                                                            parameterNames, parameterValue,
                                                                            parameterTypes);           
                if (employeesList != null) {
                    for (int i = 0; i < employeesList.getAttributeCount(); i++) {
                        GenericType row = (GenericType)employeesList.getAttribute(i);
                        Employees employee = (Employees)GenericTypeBeanSerializationHelper.fromGenericType(Employees.class, row);           
                        employeeListCache.put(employee.getEmployeeId(),employee);
            } catch (AdfInvocationException e) {
                logApplicationMessage(Level.SEVERE, "Cannot read data from Web Service \n", ""+ e.getMessage());
            return employeeListCache;
        }Here's the full sample and doc:
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/m05-ws-pojo-caching-1940037.pdf
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/m05-ws-pojo-caching-1940039.zip
    Frank

  • Java to access Webservice Data control?

    We created a Data Control from a Web Service.
    My question is can one use this Data Control using POJO.
    I think you should be able to do it but cannot find good documents or examples. Any pointers is much appreciated.

    Hi,
    if you mean a POJO in a SJF or JSP/STruts application, then yes, you can. You expose the data control methods on the binding and access the binding layer. If you mean using it from a non ADF application in a plain POJO, then the answer is no. In this case you would use a WS proxy class
    Frank

  • BAM Data Control - Group query with Active Data Service

    Trying to get a group query from a BAM data control to work with Active Data Service in an ADF application (JDeveloper 11.1.1.4.0).
    With a flat query, as the data changes, I can see DataChangeEvents fired, resulting in a data push to the client -
    <BAMDataChangeEventFilter> <log>
    #### DataChangeEvent #### on [DataControl name=CEP_Person_DOB_Flat, binding=data.view_mainPageDef.FlatDOB1.view_pageDefs_FlatDOBViewPageDef_WEB_INF_FlatDOB_xml_FlatDOB.QueryIterator]
    Filter/Collection Id : 1966
    Collection Level : 0
    Event Id : 5
    ==== DataChangeEntry (#1)
    ChangeType : INSERT_AFTER
    KeyPath : [2157, 0]
    InsertKeyPath : [null, 0]
    AttributeNames : [id, _PersonKey, _County, _Surname, _AGE, _DOB, _Country, _FirstName]
    AttributeValues : [2157, 10008/129, Vagzukarbsm, Gnnfzxxyqfgpsijcr, 110, Thu Dec 26 00:00:00 GMT 1901, Ekcqvrkoksr, Vwhm]
    When I try a group query on the same data, currently just trying to group by _DOB for every 10 years to count the number of people, I get no data change events fired, so don't get any data pushed to the client, though the data has been changed if I refresh the page.
    Any ideas ?

    can you include bam and jdev versions and also include exception from logs?

  • Oracle ADF web services data control reconfiguration problem....

    We fallow instruction below
    http://www.oracle.com/technology/products/jdev/viewlets/1013/bpelfromadf_viewlet_swf.html
    That was our test environment.
    we need to change web service url according to our production environment.
    But we can't find ADF web services data control configuration pages.
    do we need to manually change XML file.
    Thanks..

    sorry. I miss the structure windows..
    I see the menu.
    in my opinion this setting need to be done on the item.
    Also We can't refresh Web servise parameter list from there.
    is tehre any where to refresh parameter list.

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

    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

    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

  • Creating a adf page based on webservice data control

    hello
    i am using latest version of jdev 11g from otn.
    i created a VO based on EO and define a view criteria as well. i added that to a AM and exposed it as web service and deployed to a wls server.
    now i wish to created a adf page based on it so i created a ws data control based on the wsdl.
    in the data control section now i see service as findSearchOrder. When i try to drop it on the page it created a adf form with two input boxes findControl and findCriteria.
    So, I am not able to understand how exactly these are going to map to the actual search parameters?
    Please advise

    If you want to retrieve all records, you can set them to null.
    But of course, it depends on what you want to archive (I suppose you want a search form?).
    Please give us your complete JDev version. (Help > About > About tab)

  • 11g Task flow - Method call with router Issue

    Hi, I am using bounded task flow method call - which is default activity. The outcome of method call will go to a router and that decides which method/page fragment has to be selected. But when ever i try to call the default activity only the default out come of the router (Page fragment) is shown in the jspx. When click on some button which is binded with the default activity - the task flow is not working as i expected. Pls find the code of my task flow below.
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
    <task-flow-definition id="methodcall2task-flow-definition">
    <default-activity>initiatetaskflow</default-activity>
    <data-control-scope>
    <shared/>
    </data-control-scope>
    <input-parameter-definition>
    <name>methodname</name>
    <value>#{CompanyBean.methodname}</value>
    </input-parameter-definition>
    <managed-bean>
    <managed-bean-name>CompanyBean</managed-bean-name>
    <managed-bean-class>com.boeing.seds.view.company.CompanyBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <method-call id="initiatetaskflow">
    <method>#{CompanyBean.test}</method>
    <outcome>
    <fixed-outcome>#{CompanyBean.methodname}</fixed-outcome>
    </outcome>
    </method-call>
    <router id="selectMethod">
    <case>
    <expression>#{CompanyBean.methodname eq 'default'}</expression>
    <outcome>default</outcome>
    </case>
    <case>
    <expression>#{CompanyBean.methodname eq 'addcompany'}</expression>
    <outcome>addcompany</outcome>
    </case>
    <case>
    <expression>#{CompanyBean.methodname eq 'gotoAddress'}</expression>
    <outcome>gotoAddress</outcome>
    </case>
    <case>
    <expression>#{CompanyBean.methodname eq 'gotoDist'}</expression>
    <outcome>gotoDist</outcome>
    </case>
    <default-outcome>gotoAddress</default-outcome>
    </router>
    <view id="default">
    <page>/includes/company/default.jsff</page>
    </view>
    <view id="addnewcompanyFrgmt">
    <page>/includes/company/addnewcompanyFrgmt.jsff</page>
    </view>
    <method-call id="methodCall1">
    <method>#{CompanyBean.addCompany}</method>
    <outcome>
    <to-string/>
    </outcome>
    </method-call>
    <view id="supplierAddressFrgmt">
    <page>/includes/company/supplierAddressFrgmt.jsff</page>
    </view>
    <view id="supplierDistributorFrgmt">
    <page>/includes/company/supplierDistributorFrgmt.jsff</page>
    </view>
    <control-flow-rule>
    <from-activity-id>initiatetaskflow</from-activity-id>
    <control-flow-case>
    <from-outcome>#{CompanyBean.methodname}</from-outcome>
    <to-activity-id>selectMethod</to-activity-id>
    </control-flow-case>
    </control-flow-rule>
    <control-flow-rule>
    <from-activity-id>selectMethod</from-activity-id>
    <control-flow-case>
    <from-outcome>default</from-outcome>
    <to-activity-id>default</to-activity-id>
    </control-flow-case>
    <control-flow-case>
    <from-outcome>addcompany</from-outcome>
    <to-activity-id>methodCall1</to-activity-id>
    </control-flow-case>
    <control-flow-case>
    <from-outcome>gotoAddress</from-outcome>
    <to-activity-id>supplierAddressFrgmt</to-activity-id>
    </control-flow-case>
    <control-flow-case>
    <from-outcome>gotoDist</from-outcome>
    <to-activity-id>supplierDistributorFrgmt</to-activity-id>
    </control-flow-case>
    </control-flow-rule>
    <control-flow-rule>
    <from-activity-id>methodCall1</from-activity-id>
    <control-flow-case>
    <from-outcome>goAddNew</from-outcome>
    <to-activity-id>addnewcompanyFrgmt</to-activity-id>
    </control-flow-case>
    </control-flow-rule>
    <use-page-fragments/>
    </task-flow-definition>
    </adfc-config>
    Kindly let me know what may be the issue and help me to resolve it.
    Thanks!
    Sankari Kannan

    Hi Sankari,
    Since after the initial method call, your control flow has the router as its next stop, the //method-call/method/outcome/fixed-outcome can be set to a literal value(go to router) instead of an EL.
    And let router decide where to go next(by EL).
    Or you can discard your router activity, let the method-call activity decide where to go directly by setting //method-call/method/outcome/to-string to "true". Then the return value of the method decide the next stop.
    Todd

Maybe you are looking for