Appel d'une méthode JAVA dans un programme RPG
Bonjour,
J'ai un problème lorsque j'appelle une méthode JAVA dans un RPG.
Je suis certain que la classe de la méthode est bien trouvée, mais pas la méthode.
Voici le message d'erreur renvoyé par le système :
" Cause . . . . . : La procédure RPG WSOFRPG02 du programme INTFDEVT/WSOFRPG02 a
reçu une erreur Java "java.lang.NoSuchMethodError: String executeRequest" en
appelant la méthode "String executeRequest" avec la signature...."
Voici le codage de mon prototype dans le RPG :
D class1 c 'com.toyota.europe.vom.order-
D flex.adapter.OrderFlex-
D HandlerISeriesAdapter'
D method1 c 'executeRequest'
D VehicleInquiry PR O ExtProc(*JAVA: class1: method1)
Class(*JAVA:'java.lang.String')
STATIC
Mon programme est appelé dans un CLLE ou toutes les variables d'environnement (" ADDENVVAR ENVVAR(PATH)...../ ADDENVVAR ENVVAR(CLASSPATH)....") sont correctement chargées avant l'appel du RPG.
Merci pour votre aide !
Appel d'une méthode JAVA dans un programme RPG
> Pour info, et si cela peut aider d'autres utilisateurs , mon problème venait
du fait que j'essayer d'appeler une méthode qui devait être instanciée.
> Nous avons résolu le problème en faisant modifier la méthode dans la
classe java pour que celle ci soit STATIC.
> La déclaration du prototype dans le RPG se fait comme suit :
* { Prototype appel méthode 'ExecuteRequest' de classe "OrderFlexStaticHandler" }
D VehicleInquiry PR O ExtProc(*JAVA:
D class1 : method1)
* { => Paramètre retourné }
D Class(*JAVA:'java.lang.String')
D STATIC
* { => Paramètres transmis }
D Str01 O Class(*JAVA:'java.lang.String')
D CONST
D Str02 O Class(*JAVA:'java.lang.String')
D CONST
D Str03 O Class(*JAVA:'java.lang.String')
D CONST
Et l'appel de la classe / méthode comme ceci :
202.02 * { Appel de la méthode 'ExecuteRequest' de la classe "OrderFlexStaticHandler" }
202.66
203.00 C eval OutputString = VehicleInquiry(InputString01
204.01 C : InputString02
205.00 C : InputString03
206.00 C : InputString04
207.00 C : InputString05