EntityManager nulo

Boa noite,
estou desenvolvendo um projeto WEB com JSF e JPA sem EJB…
Uso o Glassfish 3.1 e o mesmo implanta o projeto normalmente.
As tabelas do banco foram geradas, no entanto, quando tento realizar alguma operação usando o entityManager, ocorre um erro de NullPointerException…
Já li vários tópicos aqui e após vários sugestões o erro persiste.
Se puderem me ajudar, agradeço
O persistence.xml

<persistence version="2.0" 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_2_0.xsd">
	
	<persistence-unit name="Scad" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>jdbc/scad</jta-data-source>
	
		
		<properties>
			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.show_sql" value="true"/>
		</properties>
	</persistence-unit>
	
</persistence>

A classe que contem o EntityManager. Existem várias classes que extendem da ScadJPADAO que estam na mesma unidade de persistencia.

import java.lang.reflect.ParameterizedType;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
public abstract class ScadJPADAO<T> extends GenericDAOImpl<T> {
	@PersistenceContext(unitName="Scad")
	protected EntityManager em;
	
	
	public EntityManager getEntityManager() {
		return em;
	}
	
	public void setEntityManager(EntityManager em) {
		this.em = em;
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ScadJPADAO() {
		Object object = ((ParameterizedType) getClass()
				.getGenericSuperclass()).getActualTypeArguments()[0];
		if(object instanceof Class<?>){
			classe = (Class<T>) ((ParameterizedType) getClass()
					.getGenericSuperclass()).getActualTypeArguments()[0];
		}else{
			if(object instanceof Class){
				classe = (Class) ((ParameterizedType) getClass()
						.getGenericSuperclass()).getActualTypeArguments()[0];
			}
		}
	}

}

Na classe GenericDAOImpl tem vários métodos de consultas ao banco.
O erro ocorre

Query query = getEntityManager().createQuery(queryString.toString());

O entityManager está nulo.

Já tentei usar isso:

@PersistenUnit
private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("Scad");
@PersistenceContext
protected EntityManager em = emf.createEntityManager();

Mas deu na mesma.
Alguma sugestão?
Agradeço

Cara ja injetei ele em um EJB, será que funciona em um classe que não seja um EJB ?
Penso o seguinte a classe não esta sendo gerenciada pelo container, como ele sabe que a classe existe para poder injetar ?
Eu te aconselharia a usar um EJB, caso não queria acho que terá o obter o entity manager de um entity manager factory, como é usado em SE.
Ficaria mais ou menos assim, da uma pesquisada na net.
Só não sei como vc vai pegar um data source usando essa forma.

// Use persistence.xml configuration
EntityManagerFactory emf = Persistence.createEntityManagerFactory(“manager1”);
EntityManager em = emf.createEntityManager(); // Retrieve an application managed entity manager
// Work with the EM
em.close();

emf.close(); //close at application end

Espero ter ajudado

Pois é, com EJB funciona, mas é um projeto pequeno e eu estria subutilizando os recursos doo EJB…
O erro se eu ponho da forma que vc mencionou é que o controle de transações seria meu e da erro de transação
=\

Como assim, vc não quer utilizar um servidor EJB ? Porque ser for por outro motivo não vejo porque não usar, vc não estará usando nehum recurso a mais de memória …

Vc poderia usar o EJB como se fosse o DAO e Façade. Aqui inclusive tem um exemplo disso: Aplicação Web Completa JSF EJB JPA JAAS.

O EJB vai pesar pouca coisa ou quase nada, vc ainda terá a vantagem de não precisar controlar a transação na unha. [=