Wie funktioniert das JNDI-lookup funktioniert in diesem Beispiel JMS?
Ich habe eine harte Zeit zu verstehen, die JNDI-Teil die folgenden JMS-Beispiel.
public static void main(String[] args) {
try {
//Gets the JNDI context
Context jndiContext = new InitialContext();
//Looks up the administered objects
ConnectionFactory connectionFactory = (ConnectionFactory)
jndiContext.lookup("jms/javaee7/ConnectionFactory");
Destination queue = (Destination) jndiContext.lookup("jms/javaee7/Queue");
//Sends a text message to the queue
try (JMSContext context = connectionFactory.createContext()) {
context.createProducer().send(queue, "Text message sent at " + new Date());
}
} catch (NamingException e) {
e.printStackTrace();
}
}
Dem Buch, wo ich dieses Beispiel nicht erwähnt, das setup zu machen, das JNDI-lookup möglich. Zum Beispiel, in
ConnectionFactory connectionFactory = (ConnectionFactory)
jndiContext.lookup("jms/javaee7/ConnectionFactory");
sollte es irgendeine Art von server laufen, so dass die jndiContext
bekommen halten kann eine ConnectionFactory
Objekt? Im Allgemeinen, welche Art von setup ist erforderlich für den JNDI-lookup oben zu arbeiten?
Danke Ihnen sehr.
- Es wird nicht funktionieren, ohne weitere setup, es sei denn, es soll Teil einer webapp eher als ein eigenständiges Programm. Sie würde festlegen müssen. Eine anfängliche Kontext-factory und eine Kontext-URL für einen start. Finden Sie in der Oracle JBDI Tutorial für Beispiele.
- wie funktioniert die
ConnectionFactory
ladenjndi.properties
? Zwar gibt es ein ldap-Beispiel ich wollte nicht sehen, eine Lösung in der JNDI-tutorial, das diese Frage beantwortet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen, JNDI ist ein service, der bietet eine Menge von Objekten, die verwendet werden von der Anwendung. Dieser service ist in der Regel vom application server oder web-server oder einen dedizierten LDAP-server.
Wenn das tutorial dir versucht zu Folgen, erklärt die JMS-tutorial im Kontext von web-Anwendung, dann die meisten wahrscheinlich, es gibt einige setups geschehen in den application server (z.B. Glassfish, JBoss) und Webserver (z.B. Tomcat).
Die Möglichkeit zum Zugriff auf JNDI-auch vom Anbieter abhängig. In der Regel handelt es sich um eine Konfigurations-Datei (entweder die properties-Datei oder XML-Datei).
Eine weitere alternative zu JMS ist die Verwendung einer dedizierten JMS-provider (wie ActiveMQ. Auf diese Weise brauchen Sie nicht alle application server. Ihre Anwendung kann nur ein standalone-java-Anwendung (also nicht unbedingt eine web-Anwendung). Zugriff auf Objekte von ActiveMQ über JNDI wird hier erklärt: https://activemq.apache.org/jndi-support.html.
Allgemeine JNDI tutorial: http://docs.oracle.com/javase/tutorial/jndi/