Comment fonctionne la recherche JNDI travail dans ce JMS exemple?
Je vais avoir du mal à comprendre le JNDI partie de la suite de JMS exemple.
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();
}
}
Le livre où j'ai eu cette exemple de ne pas mentionner le programme d'installation pour faire cette recherche JNDI possible. Par exemple, dans
ConnectionFactory connectionFactory = (ConnectionFactory)
jndiContext.lookup("jms/javaee7/ConnectionFactory");
devrait-il y avoir une sorte de serveur en cours d'exécution afin que le jndiContext
pouvez obtenir une prise d'un ConnectionFactory
objet? En général, ce genre de montage est nécessaire pour la recherche JNDI ci-dessus pour travailler?
Merci beaucoup.
Il ne fonctionne pas à tous les sans plus de l'installation, sauf si c'est destiné à faire partie d'une webapp plutôt que d'un programme autonome. Vous auriez besoin de les définir. Un contexte initial de l'usine, et dans un contexte d'URL pour un début. Voir l'Oracle JBDI Tutoriel pour des exemples.
comment le
comment le
ConnectionFactory
charge jndi.properties
? Tandis qu'il y a un ldap je n'ai pas vu de solution dans le JNDI tutoriel qui répond à cette question.OriginalL'auteur JBT | 2014-04-13
Vous devez vous connecter pour publier un commentaire.
En général, JNDI est un service qui fournit un ensemble d'objets à être utilisé par l'application. Ce service est généralement fourni par une application ou un serveur web ou un serveur LDAP.
Si le tutoriel que vous essayez de suivre explique le JMS tutoriel dans le contexte de l'application web, il est fort probable, il y a quelques configurations à faire dans le serveur d'application (par exemple, Glassfish, JBoss) ou un serveur web (par exemple, Tomcat).
La façon d'accéder à JNDI dépend aussi de l'opérateur. Habituellement, cela implique un fichier de configuration (fichier de propriétés, ou fichier XML).
Une autre alternative à l'utilisation de JMS est d'utiliser un dédié fournisseur JMS comme ActiveMQ. De cette façon, vous n'avez pas besoin d'un serveur d'application. Votre application peut juste être une application java autonome (c'est à dire pas nécessairement une application web). L'accès à des objets fournis par ActiveMQ via JNDI est expliqué ici: https://activemq.apache.org/jndi-support.html.
Général JNDI tutoriel: http://docs.oracle.com/javase/tutorial/jndi/
OriginalL'auteur suhe_arie