Comment ecrire un premier client J2EE ? - Java - Programmation
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
Marsh Posté le 19-05-2003 à 07:24:00
<question type="con">
il est lancé ton serveur ?
</question>
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)
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
Marsh Posté le 19-05-2003 à 08:34:47
benou a écrit : j'y connait rien en JNDI ... |
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 : |
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 : |
Marsh Posté le 19-05-2003 à 09:20:32
DarkLord a écrit : |
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
|
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 ...
Marsh Posté le 19-05-2003 à 09:23:20
aucune idée
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.
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
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