Invoke method with output parameters - Forum - Mobile - Progress Community

Invoke method with output parameters

 Forum

Invoke method with output parameters

This question is not answered

Hi,

This error is appearing in the appserver log whenever the invoke method is called: 

Could not locate method 'method1' with matching signature in class 'class1'.

We have two inputs and two outputs, which are mapped on the mobile UI as well. 

has anyone else had this errors or does anyone know how to call this service correctly?

Thanks in advance.

All Replies
  • Hi Meyrick,
     
    As per the error it seems that there is difference in number of parameters that are coming from Mobile to OpenEdge Appserver. OpenEdge AVM could detect the specific method (invoke) in the class. However, there seems to be mismatch in number of parameters. Can you please check for proper number of parameters in the Business Entity file.
     
    Thanks and Regards,
    Anil Kumar.
     
    From: mflanegan [mailto:bounce-mflanegan@community.progress.com]
    Sent: Thursday, September 04, 2014 8:24 PM
    To: TU.Mobile@community.progress.com
    Subject: [Technical Users - Mobile] Invoke method with output parameters
     
    Thread created by mflanegan

    Hi,

    This error is appearing in the appserver log whenever the invoke method is called: 

    Could not locate method 'method1' with matching signature in class 'class1'.

    We have two inputs and two outputs, which are mapped on the mobile UI as well. 

    has anyone else had this errors or does anyone know how to call this service correctly?

    Thanks in advance.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • Hi Anil
     
    We have checked the number of parameters more than once. That can’t be the issue as the parameters that are in the business entity are exactly the same as on the mobile app builder.  We have even removed the two output parameters and kept just the two input parameters  but we are still receiving the same error. Is there any other reason why we would be getting this error when the parameters are correct?
     
    Thanks in advance.
     
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

    Disclaimer


    From: Anil Kumar [mailto:bounce-anikumar@community.progress.com]
    Sent: 04 September 2014 05:31 PM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by Anil Kumar
    Hi Meyrick,
     
    As per the error it seems that there is difference in number of parameters that are coming from Mobile to OpenEdge Appserver. OpenEdge AVM could detect the specific method (invoke) in the class. However, there seems to be mismatch in number of parameters. Can you please check for proper number of parameters in the Business Entity file.
     
    Thanks and Regards,
    Anil Kumar.
     
    From: mflanegan [mailto:bounce-mflanegan@community.progress.com]
    Sent: Thursday, September 04, 2014 8:24 PM
    To: TU.Mobile@community.progress.com
    Subject: [Technical Users - Mobile] Invoke method with output parameters
     
    Thread created by mflanegan

    Hi,

    This error is appearing in the appserver log whenever the invoke method is called: 

    Could not locate method 'method1' with matching signature in class 'class1'.

    We have two inputs and two outputs, which are mapped on the mobile UI as well. 

    has anyone else had this errors or does anyone know how to call this service correctly?

    Thanks in advance.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • Hello,

    Just a quick reply.

    Is the r-code up to date?

    Is the deployed WAR file up to date?

    It would be interesting to see how the invoke method looks like at the REST Adapter level.

    The PAAR file in the WEB-INF/adapters subdirectory is a zip file. You can make a copy and rename it to zip to extract its content. The mapping.xml file could give you and idea on what parameters the REST Adapter is expecting for method1 and then compare it to what the Business Entity (and corresponding r-code) has.

    (in 11.4 you can query this information by using the URL.)

    I hope this helps.

  • HI there
    The r-code and war file are up to date.
     
    This is what we are getting in the file.
     
      <conditional:if condition="${(rest.resourcename == 'class1_method1') and (rest.operationname == 'class1..method1') and (rest.verb == 'PUT')}">
      <mapping:rule source="${json.object['request'].string['input_parameter1']}" target="${idl.param['input_parameter1']}"/>
      <mapping:rule source="${json.object['request'].string['input_parameter2']}" target="${idl.param['input_parameter2']}"/>
    < </conditional:if>
    < </conditional:conditionalRuleSet>
     
    It all appears to be fine. How do we confirm that the mobile builder is sending those parameters correctly? There are two parameters in the request.
     
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

    Disclaimer


    From: egarcia [mailto:bounce-egarcia@community.progress.com]
    Sent: 05 September 2014 10:05 AM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by egarcia

    Hello,

    Just a quick reply.

    Is the r-code up to date?

    Is the deployed WAR file up to date?

    It would be interesting to see how the invoke method looks like at the REST Adapter level.

    The PAAR file in the WEB-INF/adapters subdirectory is a zip file. You can make a copy and rename it to zip to extract its content. The mapping.xml file could give you and idea on what parameters the REST Adapter is expecting for method1 and then compare it to what the Business Entity (and corresponding r-code) has.

    (in 11.4 you can query this information by using the URL.)

    I hope this helps.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • Hi
    anymore ideas on this?
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

    Disclaimer


    From: mflanegan [mailto:bounce-mflanegan@community.progress.com]
    Sent: 05 September 2014 10:33 AM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by mflanegan
    HI there
    The r-code and war file are up to date.
     
    This is what we are getting in the file.
     
      <conditional:if condition="${(rest.resourcename == 'class1_method1') and (rest.operationname == 'class1..method1') and (rest.verb == 'PUT')}">
      <mapping:rule source="${json.object['request'].string['input_parameter1']}" target="${idl.param['input_parameter1']}"/>
      <mapping:rule source="${json.object['request'].string['input_parameter2']}" target="${idl.param['input_parameter2']}"/>
    < </conditional:if>
    < </conditional:conditionalRuleSet>
     
    It all appears to be fine. How do we confirm that the mobile builder is sending those parameters correctly? There are two parameters in the request.
     
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

     

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

     

    Disclaimer

     
    From: egarcia [mailto:bounce-egarcia@community.progress.com]
    Sent: 05 September 2014 10:05 AM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by egarcia

    Hello,

    Just a quick reply.

    Is the r-code up to date?

    Is the deployed WAR file up to date?

    It would be interesting to see how the invoke method looks like at the REST Adapter level.

    The PAAR file in the WEB-INF/adapters subdirectory is a zip file. You can make a copy and rename it to zip to extract its content. The mapping.xml file could give you and idea on what parameters the REST Adapter is expecting for method1 and then compare it to what the Business Entity (and corresponding r-code) has.

    (in 11.4 you can query this information by using the URL.)

    I hope this helps.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • Hello,

    Thank you for checking the mapping.xml file.

    There are two sections in the mapping.xml file: mapInput and mapOutput.

    The text that you posted, which seems to be for mapInput section, seems fine. It shows two input parameters.

    The mapOutput section should have a something like the following (two output parameters, one string and one integer):

       <conditional:conditionalRuleSet>

         <conditional:if condition="${(rest.resourcename == 'Class1_method1') and (rest.operationname == 'Class1..method1') and (rest.verb == 'PUT')}">

       <mapping:rule source="${idl.param['output_parameter1']}" target="${json.object['response'].string['output_parameter1']}"/>

       <mapping:rule source="${idl.param['output_parameter2']}" target="${json.object['response'].integervalue['output_parameter2']}"/>

         </conditional:if>

       </conditional:conditionalRuleSet>

    Do you have this in your mappinp.xml file?

    Thanks.

  • Hi
     
    For now we have removed the outputs, to try get it running. Once it is running I will put them back in.
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

    Disclaimer


    From: egarcia [mailto:bounce-egarcia@community.progress.com]
    Sent: 05 September 2014 03:25 PM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by egarcia

    Hello,

    Thank you for checking the mapping.xml file.

    There are two sections in the mapping.xml file: mapInput and mapOutput.

    The text that you posted which seems to be for mapInput seems fine. It shows two input parameters.

    The mapOutput section should have a something like the following (two output parameters, one string and one integer):

       <conditional:conditionalRuleSet>

         <conditional:if condition="${(rest.resourcename == 'Class1_method1') and (rest.operationname == 'Class1..method1') and (rest.verb == 'PUT')}">

       <mapping:rule source="${idl.param['output_parameter1']}" target="${json.object['response'].string['output_parameter1']}"/>

       <mapping:rule source="${idl.param['output_parameter2']}" target="${json.object['response'].integervalue['output_parameter2']}"/>

         </conditional:if>

       </conditional:conditionalRuleSet>

    Do you have this in your mappinp.xml file?

    Thanks.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • > Could not locate method '<method-name>' with matching signature in class '<class-name>'. (14457)

    The REST Adapter uses the Open Client API to access the method in the AppServer.

    The error message that you are getting indicates that "method1" is in the Business Entity but the signature does not match. (Error 12927 would be shown if the method is not found in the class.)

    You have already mentioned that the r-code and war file are up to date. Still, it looks like the r-code that is being accessed is not the same one that you expect. Could this be an issue related to the PROPATH?

    Some troubleshooting suggestions.

    You could remove the r-code and move the code out of the PROPATH to see if I get a different error messages.

    Or could try adding a different version of the method, perhaps, one with no parameters to see if that happens to be the matching signature.

    Perhaps, the next step would be to contact Technical Support to see if they can take a look at your system.

    Thanks.

  • One thought. If they hand edited their annotations make sure they all have unique names. We had a case before which was a copy and paste error where two method has the same method name. Only one signature made it into the rest mapping file. 

    -Shelley

    Sent from my iPad

    On Sep 5, 2014, at 10:11 AM, "egarcia" <bounce-egarcia@community.progress.com> wrote:

    Reply by egarcia

    > Could not locate method '<method-name>' with matching signature in class '<class-name>'. (14457)

    The REST Adapter uses the Open Client API to access the method in the AppServer.

    The error message that you are getting indicates that "method1" is in the Business Entity but the signature does not match. (Error 12927 would be shown if the method is not found in the class.)

    You have already mentioned that the r-code and war file are up to date. Still, it looks like the r-code that is being accessed is not the same one that you expect. Could this be an issue related to the PROPATH?

    Some troubleshooting suggestions.

    You could remove the r-code and move the code out of the PROPATH to see if I get a different error messages.

    Or could try adding a different version of the method, perhaps, one with no parameters to see if that happens to be the matching signature.

    Perhaps, the next step would be to contact Technical Support to see if they can take a look at your system.

    Thanks.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • Hi there,
     
    How do you change the invoke method from a PUT to a GET?
     
    Thanks in advance
     
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

    Disclaimer


    From: schase [mailto:bounce-schase@community.progress.com]
    Sent: 06 September 2014 09:08 PM
    To: TU.Mobile@community.progress.com
    Subject: Re: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by schase
    One thought. If they hand edited their annotations make sure they all have unique names. We had a case before which was a copy and paste error where two method has the same method name. Only one signature made it into the rest mapping file. 
     
    -Shelley

    Sent from my iPad

    On Sep 5, 2014, at 10:11 AM, "egarcia" <bounce-egarcia@community.progress.com> wrote:
    Reply by egarcia

    > Could not locate method '<method-name>' with matching signature in class '<class-name>'. (14457)

    The REST Adapter uses the Open Client API to access the method in the AppServer.

    The error message that you are getting indicates that "method1" is in the Business Entity but the signature does not match. (Error 12927 would be shown if the method is not found in the class.)

    You have already mentioned that the r-code and war file are up to date. Still, it looks like the r-code that is being accessed is not the same one that you expect. Could this be an issue related to the PROPATH?

    Some troubleshooting suggestions.

    You could remove the r-code and move the code out of the PROPATH to see if I get a different error messages.

    Or could try adding a different version of the method, perhaps, one with no parameters to see if that happens to be the matching signature.

    Perhaps, the next step would be to contact Technical Support to see if they can take a look at your system.

    Thanks.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • You can’t. I am suggesting that you compare the annotations in the source and make sure that there are not two invoke methods with the same anootation.
     
    Thanks
    -Shelley
     
    From: mflanegan [mailto:bounce-mflanegan@community.progress.com]
    Sent: Monday, September 08, 2014 8:55 AM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by mflanegan
    Hi there,
     
    How do you change the invoke method from a PUT to a GET?
     
    Thanks in advance
     
     

    Meyrick Flanegan

    Developer - Managed Services

    Email: mflanegan@elcb.co.za

     

    ELCB Information Services (Pty) Ltd

    Customer Service Email  elcb@elcb.co.za · www.elcb.co.za

     

    E A S T  L O N D O N

    Tel: +27(43)  704 0700

    Fax: +27(43) 704 0701

    J O H A N N E S B U R G

    Tel: +27(11) 879 6179

    Fax: +27(11) 454 0384

    P O R T  E L I Z A B E T H

    Tel: +27(41) 373 0529

    Fax: +27(86) 650 0135

     

    Disclaimer

     
    From: schase [mailto:bounce-schase@community.progress.com]
    Sent: 06 September 2014 09:08 PM
    To: TU.Mobile@community.progress.com
    Subject: Re: [Technical Users - Mobile] Invoke method with output parameters
     
    Reply by schase
    One thought. If they hand edited their annotations make sure they all have unique names. We had a case before which was a copy and paste error where two method has the same method name. Only one signature made it into the rest mapping file. 
     
    -Shelley

    Sent from my iPad

    On Sep 5, 2014, at 10:11 AM, "egarcia" <bounce-egarcia@community.progress.com> wrote:
    Reply by egarcia

    > Could not locate method '<method-name>' with matching signature in class '<class-name>'. (14457)

    The REST Adapter uses the Open Client API to access the method in the AppServer.

    The error message that you are getting indicates that "method1" is in the Business Entity but the signature does not match. (Error 12927 would be shown if the method is not found in the class.)

    You have already mentioned that the r-code and war file are up to date. Still, it looks like the r-code that is being accessed is not the same one that you expect. Could this be an issue related to the PROPATH?

    Some troubleshooting suggestions.

    You could remove the r-code and move the code out of the PROPATH to see if I get a different error messages.

    Or could try adding a different version of the method, perhaps, one with no parameters to see if that happens to be the matching signature.

    Perhaps, the next step would be to contact Technical Support to see if they can take a look at your system.

    Thanks.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.