EJB3.1

30 views
Skip to first unread message

Picanha

unread,
Jul 28, 2012, 8:18:29 PM7/28/12
to scal...@googlegroups.com
Olá,

alguém já teve o problema com os proxies de EJB para o scala. O Weld esta lançando uma exceção na geração dos proxies de EJB.

Meu código esta como abaixo:

trait JpaBaseRepository[E] {
  @PersistenceContext
  private var em: EntityManager = _

  def get(id:Serializable)(implicit manifest: Manifest[E]) :E = {
    em.find(manifest.erasure, id).asInstanceOf[E]
  }

  def add(e:E):E = {
    em persist(em merge(e))
    e
  }

  def remove(e:E) :E = {
    em remove(e)
    e
  }

  def all()(implicit m: Manifest[E]) = {
    em.createQuery("from " + m.erasure.getSimpleName, m.erasure).getResultList
  }
}

EJB: 
@LocalBean
@Stateless
class PersonRepositoryJpa extends JpaBaseRepository[Person]{

}

Ao subir o server esta dando o seguinte erro:

org.jboss.weld.exceptions.WeldException: by java.lang.VerifyError: class com.backoffice.repository.PersonRepositoryJpa$Proxy$_$$_Weld$Proxy$ overrides final method com$backoffice$repository$JpaBaseRepository$$em_$eq.(Ljavax/persistence/EntityManager;)V

Thomas Sant'ana

unread,
Jul 29, 2012, 11:05:45 PM7/29/12
to scal...@googlegroups.com
Nao tenho certez, mas o  erro  erro ser refere ao metodo em_= (tá unmangled). Como voce não define isso no seu trait eu acredito que o _ está gerando um final method que não pode ser herdado pelo proxy do EJB.

Sendo assim eu recomendaria colocar um:

private var em: EntityManager = null

Agora eu nunca trabalhei com EJB...

Thomas

2012/7/28 Picanha <giulia...@gmail.com>

Giuliano Costa

unread,
Jul 30, 2012, 4:10:43 PM7/30/12
to scal...@googlegroups.com
Não tenho como testar agora. Quando chegar em casa vamos ver.

colocando @BeanProperty em cima do em, funciona. Mas não seria o correto...




2012/7/30 Thomas Sant'ana <mail...@gmail.com>



--
================================
Giuliano Costa
Reply all
Reply to author
Forward
0 new messages