Skip to content

Εργασία με το JNDI σε μια εφαρμογή J2SE

  • by

Java Naming and Directory Interface (JNDI) επιτρέπει τη δημοσίευση αντικειμένων Java σε μια υπηρεσία καταλόγου στην οποία μπορούν να προσπελαστούν άλλες εφαρμογές Java αργότερα. Για να λειτουργήσει αυτό χρειάζεστε έναν πάροχο υπηρεσιών JNDI. Όλοι οι διακομιστές J2EE συνοδεύονται από ενσωματωμένη εφαρμογή της υπηρεσίας JNDI. Αυτό κάνει τους περισσότερους να υποθέσουν ότι μπορείτε να εργαστείτε με το JNDI μόνο σε περιβάλλον J2EE. Μπορείτε να ρυθμίσετε τον δικό σας ελαφρύ διακομιστή JNDI, να φιλοξενήσετε τα αντικείμενά σας J2SE σε αυτόν και να κάνετε αυτά τα αντικείμενα διαθέσιμα για χρήση από άλλους. Υπάρχουν διαθέσιμες ποικιλίες παρόχων υπηρεσιών JNDI. Σε αυτό το άρθρο, πρόκειται να αναφερθώ σε αυτό που παρέχεται από το JBOSS.

Τα ακόλουθα αρχεία .jar πρέπει να προστεθούν στη διαδρομή τάξης για να ρυθμίσετε τον διακομιστή, να φιλοξενήσετε ένα αντικείμενο και να έχετε πρόσβαση σε αυτόν.

1) log4j.jar

2) jnpserver.jar

3) jboss-common.jar

4) ταυτόχρονος.βάζο

Επιπλέον, πρέπει επίσης να έχετε το αρχείο log4j.properties στο classpath σας. Αυτά τα αρχεία είναι διαθέσιμα με τη δυαδική διανομή Jboss.

Για να ρυθμίσετε το περιβάλλον, μπορείτε επίσης να πληκτρολογήσετε τα ακόλουθα σε ένα αρχείο κειμένου (setJNPEnv.cmd)

ορίστε JNP_HOME=C:jnp

ορίστε JNP_LIB=%JNP_HOME%lib

ορίστε JNP_PATH=%JNP_LIB%;%JNP_LIB%log4j.jar

set JNP_PATH=%JNP_PATH%;%JNP_LIB%jnpserver.jar

set JNP_PATH=%JNP_PATH%;%JNP_LIB%jboss-common.jar

set JNP_PATH=%JNP_PATH%;%JNP_LIB%concurrent.jar

ορίστε CLASSPATH=.;%JNP_PATH%;%CLASSPATH%

Βεβαιωθείτε ότι έχετε αλλάξει την τιμή της μεταβλητής περιβάλλοντος JNP_HOME στο φάκελο, όπου έχετε εξαγάγει το jnp.zip.

Για να ξεκινήσετε την υπηρεσία JNDI, ανοίξτε μια γραμμή εντολών και πληκτρολογήστε την ακόλουθη εντολή:

c:work>setJNPEnv.cmd

c:work>start java org.jnp.server.Main

Αυτό ανοίγει ένα νέο παράθυρο που αντιπροσωπεύει τον διακομιστή JNP (Jboss Naming Provider) που ακούει στη θύρα 1099.

Τώρα μπορείτε να αποθηκεύσετε οποιοδήποτε αντικείμενο θέλετε στο JNDI χρησιμοποιώντας τον παρακάτω κώδικα:

Context ctx=new InitialContext();

ctx.rebind(“name1”, “Vinod”);

ctx.rebind(“person1”, new Person(“Vinod”, “Bangalore”));

Επίσης, μπορείτε να αναζητήσετε και να αποκτήσετε ένα αντικείμενο χρησιμοποιώντας τον παρακάτω κώδικα:

Context ctx=new InitialContext();

Όνομα συμβολοσειράς=(String) ctx.lookup(“name1”);

Άτομο p1=(Person) ctx.lookup(“person1”);

Ενα τελευταίο πράγμα. Πρέπει να παρέχετε τις πληροφορίες σχετικά με τον πάροχο JNDI όταν καλείτε τη νέα InitialContext(). Αυτό γίνεται συνήθως τοποθετώντας ένα αρχείο jndi.properties στον κατάλογο εργασίας σας ή παρέχοντας ένα αντικείμενο java.util.Map. Ακολουθεί το περιεχόμενο του αρχείου jndi.properties:

java.name.provider.url=localhost:1099

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

java.naming.factory.url.pkgs=org.jboss.name