Routine C en Java - Programmation
Marsh Posté le 10-07-2002 à 15:02:33
Ouais mais le JNI c'est pas exclusif C++, ça marche avec le C ainsi par exemple ?
Marsh Posté le 10-07-2002 à 15:07:01
Vapo a écrit a écrit : Ouais mais le JNI c'est pas exclusif C++, ça marche avec le C ainsi par exemple ? |
Ouais, bien sur...
il va voir sur le site de Sun, c pas trop mal expliqué.
Marsh Posté le 10-07-2002 à 15:09:35
Merci de ta réponse j'ai une derniére question, doit-on appeller par exemple des API C à l'aide du JNI en JAVA ou ce n'est pas nécessaire ?
Marsh Posté le 10-07-2002 à 15:16:08
Non, t pas obligé d'appeler de API c !
En fait, tu vas devoir créer des methodes du type "native" en java.
Ensuit, t'utilisera javah qui te créera un .h qui correspond à la description, en C, de ta méthode java. Il faudra que tu crée une dll en C, qui implémente la définition de fonction du .h généré. à ce moment là, t'as un point d'entrée dans du C.
Pour faire des échanges des données entre Java et C, c plus compliqué...
Marsh Posté le 10-07-2002 à 15:25:49
En fait je t'explique mon probléme, j'ai 2 serveurs (unix)
sous un j'ai un serveur Apache (il est attaquè via des browser Ie et netscape). L'autre serveur dispose d'API C bien spècifique pour attaquer une application en Locale. Petit schéma :
Serveur2 Serveur1 PC
[API C] <--------------------> [JAVA] <------------>[IE]
[APPLICATION] [Serveur Apache]
Je pense avoir un Serveur Apache sur Serveur2 (je n'ai pas encore la donnèe) Est ce que tu vois une solution fiable ?
Marsh Posté le 10-07-2002 à 15:27:05
Vapo a écrit a écrit : En fait je t'explique mon probléme, j'ai 2 serveurs (unix) sous un j'ai un serveur Apache (il est attaquè via des browser Ie et netscape). L'autre serveur dispose d'API C bien spècifique pour attaquer une application en Locale. Petit schéma : Serveur2 Serveur1 PC [API C] <--------------------> [JAVA] <------------>[IE] [APPLICATION] [Serveur Apache] Je pense avoir un Serveur Apache sur Serveur2 (je n'ai pas encore la donnèe) Est ce que tu vois une solution fiable ? |
Bah, JNI, pourquoi pas !?
Marsh Posté le 10-07-2002 à 15:29:51
Vapo a écrit a écrit : Ouais mais le JNI c'est pas exclusif C++, ça marche avec le C ainsi par exemple ? |
Ben je viens de finir une DLL qui est développée au départ en C (sous unix) et ensuite elle est récuperée sous windows 2000 pour être utilisée avec un serveur WebLogic. Il y a rien à faire ou presque. Il faut modifier le prototype des fonctions qui pourront être appelées, ajouter "jni.h" et quelques lignes dans le ".h" et c'est parti.
Quand le serveur WebLogic reçoit une demande d'un client, il fait appel à un "ejb" (je crois que c'est comme ça qu'on dit) qui charge la dll (compilée avec VC par exemple) et appelle une fonction de la DLL avec par exemple des parametres.
Dans mon cas la DLL récupère une chaîne XML, la parse, efffectue une ou plusieurs requêtes sur une base Sybase, et enfin génére une chaîne XML qu'elle renvoie au serveur WebLogic.
Marsh Posté le 10-07-2002 à 14:56:04
Peut on appeler des routines écrites en C via du JAVA ?