Ho difficoltà a comprendere la parte JNDI del seguente esempio JMS.Come funziona la ricerca JNDI in questo esempio JMS?
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();
}
}
Il libro in cui ho preso questo esempio non ha menzionato l'installazione per rendere possibile questa ricerca JNDI. Per esempio, in
ConnectionFactory connectionFactory = (ConnectionFactory)
jndiContext.lookup("jms/javaee7/ConnectionFactory");
ci dovrebbe essere una sorta di server che esegue in modo che il jndiContext
può ottenere una sospensione di un oggetto ConnectionFactory
? In generale, quale tipo di installazione è necessaria per la ricerca JNDI sopra per funzionare?
Grazie mille.
Non funzionerà affatto senza ulteriori impostazioni, a meno che non sia destinato a far parte di un'applicazione Web anziché di un programma autonomo. Dovresti definire. Una fabbrica di contesto iniziale e un URL di contesto per un inizio. Vedi l'Esercitazione JBDI Oracle per gli esempi. – EJP
@EJP in che modo 'ConnectionFactory' carica' jndi.properties'? Mentre c'è un [esempio ldap] (https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html#MULTI) non ho visto una soluzione nel tutorial JNDI che risponde a questa domanda. – Thufir