Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3783 connectés 

 


Dernière réponse
Sujet : Routine C en Java
darkoli

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.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
darkoli

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.

El_gringo

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

vapo 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 ?
El_gringo 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é...
vapo 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 ?
El_gringo

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

vapo Ouais mais le JNI c'est pas exclusif C++, ça marche avec le C ainsi par exemple ?
El_gringo Ouais, avec JNI...
vapo Peut on appeler des routines écrites en C via du JAVA ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)