Invoke method with output parameters

Posted by mflanegan on 04-Sep-2014 09:53

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

Posted by Anil Kumar on 04-Sep-2014 10:29

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.
 
[collapse]
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.

[/collapse]

Posted by mflanegan on 05-Sep-2014 01:23

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


[collapse]
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.
 
[collapse]
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.

[/collapse][/collapse]

Posted by egarcia on 05-Sep-2014 03:04

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.

Posted by mflanegan on 05-Sep-2014 03:32

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


[collapse]
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.

[/collapse]

Posted by mflanegan on 05-Sep-2014 07:30

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


[collapse]
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

 
[collapse]
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.

[/collapse][/collapse]

Posted by egarcia on 05-Sep-2014 08:23

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.

Posted by mflanegan on 05-Sep-2014 08:28

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


[collapse]
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.

[/collapse]

Posted by egarcia on 05-Sep-2014 09:04

> 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.

Posted by Shelley Chase on 06-Sep-2014 14:07

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.

Posted by mflanegan on 08-Sep-2014 07:54

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


[collapse]
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.

[/collapse]

Posted by Shelley Chase on 08-Sep-2014 10:21

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
 
[collapse]
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

 
[collapse]
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.

[/collapse][/collapse]

This thread is closed