Je voudrais savoir si il est possible d'utiliser du code compilé au cours de l'exécution d'un programme:
En fait je suis en train de réaliser le portage sous Linux via Java d'une application .net qui utilise/fournit des web-service. Il s'agit en fait d'applications embarquées appellé "device", qui fournissent chaqu'une des web méthodes spécifiques. Chaque "device" doit être capable d'interroger un autre "device" alors qu'il ne connaissait pas son existance lorsque le programme à été lancé (équivalent à de l'UPnP en résumé).
Dans la version .net, la procédure est la suivante (en simplifiant):
1) Recupération du WSDL distant.
2) Création d'une proxy via l'utilitaire wsdl.exe => création du code source C# ("proxy.cs") permettant d'appeller le web service.
3) Compilation de "proxy.cs" => création d'une dll
4) Chargement de la dll et "invocation" (ce n'est pas un appel classique, mais ca marche...) des méthodes disponibles.
Techniquement je pense que l'ensemble de ces étapes sont réalisables, voici l'équivalent en Java que je pense faire:
1) idem
2) Création d'une proxy via l'utilitaire Axis : exécution dans un terminal de "java -cp $SERVCLASSPATH org.apache.axis.wsdl.WSDL2Java uddi.wsdl" => Plusieur classes Java permettant d'intéroger le web service sont crées.
3) Compiltation de ces classes dans un terminal => création d'un package en "*.jar" non compressé
4) ???
Pouvez vous me confirmer que cette quatrième étape est faisable (apparement la la JVM charge une classe lors de sa première utilisation) et si oui quel approche auriez vous eu?
D'avance merci!
PS: si la présentation que j'ai faite n'est pas clair, n'hésitait pas à me demander ce qui n'est pas suffisament explicite...
Partager