Erro ao obter um contexto JNDI para o JBoss as 7.1

Boa noite,

Estou estudando EJB pelo livro Enterprise JavaBeans 3.0; e estou com um problema para executar o primeiro exemplo do livro.
Sempre que tento acessar minha interface remota pelo meu cliente java (standalone) recebo a seguinte exceção:

javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]

Estou testanto dento do mesmo projeto EJB, só criei uma classe java com o método main. Alguém já passou por esse erro? Alguém sabe como me ajudar?
Pesquisei em vários sits, mas só acho o problema, e nunca a solução. Segue abaixo os códigos do simples exemplo, e desde já, agradeço a todos!

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">
	
	<persistence-unit name="titan" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:/MySQLDS</jta-data-source>
		<properties>
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="false" />
			<property name="hibernate.hbm2ddl.auto" value="update" /> <!-- create-drop -->
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		</properties>
	</persistence-unit>
</persistence>

Interface remota:

@Remote
public interface TravelAgenteRemote {
	
	public Cabin consultarCabinPorId(Cabin cabin);
	
	public void inserirCabin(Cabin cabin);

}

EJBImp:

package br.com.titan.ejb;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import br.com.titan.domain.Cabin;

@Stateless
public class TravelAgenteEJB implements TravelAgenteRemote {
	
	@PersistenceContext(unitName="titan")
	private EntityManager entityManager; 
	

	@Override
	public Cabin consultarCabinPorId(Cabin cabin) {
		return entityManager.find(Cabin.class, cabin.getId());
	}

	@Override
	public void inserirCabin(Cabin cabin) {
		entityManager.persist(cabin);
	}

}

Entity:

package br.com.titan.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="CABIN")
public class Cabin implements Serializable {

	private static final long serialVersionUID = -6400678160591138550L;
	
	@Id
	@Column(name="ID_CABIN")
	private Long id;
	
	@Column(name="NOME_CABIN")
	private String nome;
	
	public Cabin(Long id, String nome) {
		this.id = id;
		this.nome = nome;
	}
	
	public Cabin(Long id) {
		this.id = id;
	}
	
	public Cabin() { }

	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
}

E finalmente o cliente:

package br.com.titan.cliente;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

import br.com.titan.domain.Cabin;
import br.com.titan.ejb.TravelAgenteRemote;

public class Cliente {
	
	public static void main(String[] args) {
		
		try {
			Context jndiContext = getInitialContext();
			Object ref = jndiContext.lookup("TravelAgenteEJB/remote");
			TravelAgenteRemote travelAgenteRemote = (TravelAgenteRemote) PortableRemoteObject.narrow(ref, TravelAgenteRemote.class);
			
			Cabin cabin = new Cabin(1L, "Teste");
			travelAgenteRemote.inserirCabin(cabin);
			
			Cabin cabinPorId = travelAgenteRemote.consultarCabinPorId(new Cabin(1L)); 
			
			System.out.println(cabinPorId.getId());
			System.out.println(cabinPorId.getNome());
			
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}

	private static Context getInitialContext() throws NamingException {
		
		Properties propriedade = new Properties();
		//org.jnp.interfaces.NamingContextFactory
		propriedade.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 
		propriedade.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
		propriedade.put(Context.PROVIDER_URL, "jnp://localhost:1099");
		
		
		return new InitialContext(propriedade);
	}

}