Comment ecrire un premier client J2EE ?

Comment ecrire un premier client J2EE ? - Java - Programmation

Marsh Posté le 19-05-2003 à 07:12:16    

Voilà, je voudrais commencer à écrire des applis sur j2ee.
Bon je commence tranquille :
achat de bouquins
premiere lecture
j'installe AppServer 7 de sun
j'installe JBuilder 8
je créé dans AppServer des ressources JDBC
j'écris ce code juste pour accéder au service de nom :
 
import javax.naming.*;
import java.util.Hashtable;
import javax.sql.*;
import java.sql.*;
public class test {
  Context ctx;
  public test() {
    try {
      Hashtable env = new Hashtable();
      env.put("java.naming.factory.initial",
              "com.sun.jndi.cosnaming.CNCtxFactory" );
      env.put("java.naming.provider.url", "iiop://localhost:5800" );
      ctx = new InitialContext(env);
      DataSource ds1 = (DataSource)ctx.lookup("testjndi" );
    }
etc..
}
 
et il me répond
 
javax.naming.NameNotFoundException. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
 
j'ai vérifié avec jnditree que le nom testjndi était bien là à la racine
J'ai rien configuré dans JBuilder.
 
Si une bonne âme pouvait m'aider, ce serait très gentil :)


Message édité par ayachi le 19-05-2003 à 07:14:58
Reply

Marsh Posté le 19-05-2003 à 07:12:16   

Reply

Marsh Posté le 19-05-2003 à 07:14:30    

Ah oui sinon l'obtention du contexte marche, c'est au lookup que ça déconne

Reply

Marsh Posté le 19-05-2003 à 07:24:00    

<question type="con">
il est lancé ton serveur ?
</question>


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 19-05-2003 à 08:19:24    

ton naming context est pas configuré correctement. Tu dois avoir les classes de ton implémentation JNDI dans le classpath (niveau serveur ca devrait etre ok mais tu devrais avoir un truc genre naming-client.jar à ajouter avant de lancer ton client)
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 19-05-2003 à 08:23:22    

j'y connait rien en JNDI ...
dark, le serveur construit un jar contenant les classes d'implémentation pour retrouver les objets qu'il a partagé c'est ca  :??:  
(c'est ce que je comprend par ce que tu as expliqué)
 
ca me parait bizare comme fonctionnement :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 19-05-2003 à 08:34:47    

benou a écrit :

j'y connait rien en JNDI ...
dark, le serveur construit un jar contenant les classes d'implémentation pour retrouver les objets qu'il a partagé c'est ca  :??:  
(c'est ce que je comprend par ce que tu as expliqué)
 
ca me parait bizare comme fonctionnement :/


 
JNDI c'est une API d'accès a une structure d'information. Par exemple tu peux utiliser JNDI pour accéder un serveur LDAP ou le file system du serveur. Pour ce faire tu as besoin d'une *implémentation* de JNDI.
 
Typiquement l'exception qu'il se choppe est due à une config incorrecte du client J2EE qui a besoin de quelques classes pour traduire les messages revenant du serveur  
 

Citation :


org.omg.CosNaming.NamingContextPackage.NotFound


 
regarder les logs du serveur permettraient de voir si il s'en sort ou si il se crashe également.
 
Cela dit le code semble correct
 
Pour JBoss on utilise un truc du genre:
 

Citation :


java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=127.0.0.1


 
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 19-05-2003 à 09:20:32    

DarkLord a écrit :


JNDI c'est une API d'accès a une structure d'information. Par exemple tu peux utiliser JNDI pour accéder un serveur LDAP ou le file system du serveur. Pour ce faire tu as besoin d'une *implémentation* de JNDI.


ok, ca je savais ...
 
 

DarkLord a écrit :

Typiquement l'exception qu'il se choppe est due à une config incorrecte du client J2EE qui a besoin de quelques classes pour traduire les messages revenant du serveur  

Citation :


org.omg.CosNaming.NamingContextPackage.NotFound




par contre là je comprend moins ... d'après ce que je peux voir, il utilise iiop => protocole et CosNaming Corba. Et il me semble bien que c'est intégré au J2SE depuis le 1.3 => je vois pas ce qui peut lui manquer comme implémentation ...
à moins que ce soit pas une implémentation dans le J2Se mais une interface à la java.sql ... :??:

Reply

Marsh Posté le 19-05-2003 à 09:23:20    

aucune idée :/


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 19-05-2003 à 09:57:15    

[:blueflag]


---------------
Le site de ma maman
Reply

Marsh Posté le 19-05-2003 à 10:31:11    

Merci,
Le serveur est lancé
DarkLord, je vais essayer d'exploiter l'idée du client à mettre.
Par contre je qu'est-ce que le NamingContextPackage ?
J'ai regarder le code de treeJNDI avec un décompilateur et il utilise le même code que moi. La seule différence est qu'il tourne dans le serveur. Donc c'est pour ça que du côté client hors serveur, il y'a des choses à faire peut-être.
 

Reply

Marsh Posté le 19-05-2003 à 10:31:11   

Reply

Marsh Posté le 19-05-2003 à 10:38:56    

tenez qq'un qui a le même problème
 
Dear all responders,
can any one help in resolving my problem??the problem description is as follows:
i am using sun one application server 7.0 to deploy a J2EE Apllication
so i have created a data source using the admin page with the name
"nodbsession".now i want to access this datasource using a stand alone java client and want to establish a connection to database.i am using the following code snippet to do so
 
**code is as follows**
 
 
Hashtable env=new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory" );
env.put(Context.PROVIDER_URL, "iiop://localhost:3700" );
 
 
System.out.println("creating context" );
Context ctx =new InitialContext(env);
System.out.println("created successfull" );
DataSource ds =(DataSource)ctx.lookup("nodbsession" );
 
/* by using like this also it is not working
DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/nodbsession" );
 
*/
 
i am able to obtain the context succussfully but the exception is thrown for the data source look up
the following exception is thrown
 
 
javax.naming.NameNotFoundException. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
 
at org.omg.CosNaming.NamingContextPackage.NotFoundHelper.read(NotFoundHelper.java:72)
at org.omg.CosNaming._NamingContextExtStub.resolve(_NamingContextExtStub.java:402)
at com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java:440)
at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:492)
at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:470)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at Test.<init>(Test.java:27)
at Test.main(Test.java:47)
 
 
please help me in resolving the above problem
 
advance thanx to all those who intend to reply
please provide me a proper resolution

Reply

Sujets relatifs:

Leave a Replay

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