Newsgroup: it.comp.java
Titolo: Problema JNDI

Buona sera a tutti,
sto cercando di settare le proprietà d'ambiente di JNDI per il servizio di
denominazione per il File System per poter eseguire un esempio banale in
modo poi da far pratica con gli EJB. Le variabili che setto sono queste:
java.naming.initial.factory
java.naming.provider.url
con questi valori....
java.naming.initial.factory=com.sun.jndi.fscontext.RefFSContextFactory
java.naming.provider.url=file://d:/sandro/jndi_root/
I modi provati sono due, il primo direttamente nel codice (tramite
un'hashtable da passare all'oggetto InitialContext) e l'altro nel file
jndi.properties.
Ho scaricato dal sito della Sun, sia il jar jndi.jar che i due files jar
(SPI) per il servizio di denominazione per il File System (providerutil.jar
e fscontext.jar)
I tre files jar e il file properties li ho messi sotto la directory lib
della <JAVA_HOME> e ho eseguito il codice.
Nella creazione dell'oggetto InitialContext col recupero dei parametri dal
file properties l'errore trovato è:
javax.naming.NoInitialContextException: Need to specify class name in
environment or system property, or as an applet parameter, or in an
application resource file: java.naming.factory.initial
Mentre nel caso di settaggio del Hashtable, l'errore è:
javax.naming.NoInitialContextException: Cannot instantiate class:
com.sun.jndi.fscontext.RefFSContextFactory. Root exception is
java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory
Mentre nel primo caso l'errore sembra essere che non riesce a trovare il
file di properties, poichè indica la mancanza di settaggio di
"java.naming.factory.initial" mentre in realtà essa viene settata, nel
secondo caso non viene trovata la classe RefFSContextFactory anche questa
però messa (il file jar) sotto la directory lib.
Ringrazio anticipatamente per l'aiuto.
Alex78
--------------------------------
Inviato via 
http://usenet.libero.it

 java.naming.factory.initial
Hai invertito il nome della proprieta': nel tuo msg hai scritto 
che setti java.naming.initial.factory
Se usi le costanti in Context eviti queste cose.
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun


Scusami, quello č stato un errore mio nello scrivere il messaggio. Comunque
sono andato un po avanti. Quello che ho fatto č stato scompattare i due
files jar (SPI) nella directory lib e creare quindi una gerarchia del tipo
com.sun.jndi.fscontext... Se a questo punto provo l'esempio direttamente
sotto la cartella lib l'oggetto InitialContext viene creato correttamente e
tutto funziona ma senza scompattarle direttamente a mano non le vede. Io
invece credo che la jvm debba riuscire a scompattarlo direttamente "al volo"
un file jar e trovare da sola la classi ma questo non accade. Un'altra cosa
strana č che se mi sposto in un'altra directory che non sia lib non funziona
piů niente. Questo mi sembra strano ma non ho letto nulla su configurazioni
di classpath per quanto riguarda jndi e soprattutto per il servizio di
denominazione a FileSystem. Ho pensato che potesse essere qualcosa tipo il
".;" messo prima del percorso principale del classpath, ma quello c'č.
Attendo aiuti in proposito...


 mano non le vede. 
Scusa, non avevo letto completamente il msg.
Semplicemente, non hai JAR che contengono quelle classi in classpath.
La tua linea di comando dovrebbe essere simile a
java -cp jndi.jar;blahblahblah.jar;../<directory con le tue classi> 
nomeclasse
Alternativamente, puoi mettere i jar in $JAVA_HOME/lib/ext (non 
$JAVA_HOME/lib)



Benissimo... grazie per l'aiuto adesso funziona tutto.
