2017-07-21 2 views
0

Lorsque j'exécute le code suivant, il semble que le message a été envoyé à la file d'attente mais je ne peux pas voir anythyng dans la file d'attente. Il n'y a pas d'erreur, exception faite de l'exécution de mon code.Envoyer un message à JMS (Weblogic)

J'utilise le serveur Weblogic.

Ceci est mon code:

private InitialContext getInitialContext() throws NamingException { 
    Hashtable env = new Hashtable(); 
    env.put(InitialContext.INITIAL_CONTEXT_FACTORY, contextFactory); 
    env.put(InitialContext.PROVIDER_URL, providerUrl); 
    env.put(Context.SECURITY_PRINCIPAL, username); 
    env.put(Context.SECURITY_CREDENTIALS, password); 
    return new InitialContext(env); 
} 

public ConnectionFactory getConnectionFactory(InitialContext context) throws NamingException { 
    return (ConnectionFactory) context.lookup(ConnectionParameter.JMS_CONNECTION_FACTORY_JNDI); 
} 

public void send() throws NamingException, JMSException { 
    InitialContext context = getInitialContext(); 
    Destination destination = (Destination) context.lookup("jms/dpdr/mhcinterface/arnoldQueue"); 

    try (Connection connection = getConnectionFactory(context).createConnection();){ 
     Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); 
     MessageProducer sender = session.createProducer(destination); 
     Message message = session.createTextMessage("work order complete!"); 
     sender.send(message); 
     session.commit(); 
     session.close(); 
    } 
    context.close(); 

    System.out.println("-- end --"); 
} 

Toute idée de ce qui ne va pas ici s'il vous plaît?

Répondre

0

Il semble que vous ayez oublié d'appeler connection.start() avant d'envoyer votre message. Vous pouvez le faire comme ci-dessous:

MessageProducer sender = session.createProducer(destination); 
connection.start(); 
Message message = session.createTextMessage("work order complete!");