EJB de sessão enviar mensagem

Estou precisando fazer um EJB de sessão que envie mensagens. Essas mensagens devem ser recebidas por um EJB de mensagens (MDB). Como eu faço para o EJB enviar mensagens? Tentei inserir o código de acesso ao JNDI no método ejbCreate e não funcionou. Criei um método próprio para essa configuração e não funcionou. Eu devo usar InitialContext ou SessionContext para localizar a fila de mensagens?

    public void ejbCreate() {
        // TODO implement ejbCreate if necessary, acquire resources
        // This method has access to the JNDI context so resource aquisition
        // spanning all methods can be performed here such as home interfaces
        // and data sources.
        System.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        System.setProperty("java.naming.factory.url.pkgs", "org.jnp.interfaces");
        System.setProperty("java.naming.provider.url", "localhost");
        
        try {
            contextoInicial=new InitialContext();
            factory = (QueueConnectionFactory) contextoInicial.lookup( "java:/XAConnectionFactory" );
            queue = (Queue) contextoInicial.lookup( "queue/FilaEJB" );
            queueConn = factory.createQueueConnection();
            session = queueConn.createQueueSession( false, Session.AUTO_ACKNOWLEDGE );
            sender = session.createSender(queue);
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (JMSException e){
            e.printStackTrace();
        }
    }
    public int soma(int a, int b) {
        //TODO implement soma
        try {
            TextMessage message = session.createTextMessage(a+" + "+b+" = "+(a+b));
            sender.send(message);
        } catch (JMSException ex) {
            ex.printStackTrace();
        }
        return a+b;
    }