Routine C en Java

Routine C en Java - Programmation

Marsh Posté le 10-07-2002 à 14:56:04    

Peut on appeler des routines écrites en C via du JAVA ?

Reply

Marsh Posté le 10-07-2002 à 14:56:04   

Reply

Marsh Posté le 10-07-2002 à 14:58:50    

Ouais, avec JNI...

Reply

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 ?

Reply

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

Reply

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 ?

Reply

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

Reply

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 ?

Reply

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 !?

Reply

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.


Message édité par darkoli le 10-07-2002 à 15:34:30

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed