Fórum Erro Spring + Jpa 2 + JunitTest #393121
29/12/2010
0
Ola pessoal.Estou comecando a usar Spring e ao tentar compilar meu projeto aparece o seguinte erro.Oq poderia ser?
init:
Deleting: C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\build\built-jar.properties
Deleting: C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\null1821604262
Compiling 2 source files to C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\build\classes
Note: Creating non-static metadata factory ...
Note: Building metadata class for round element: br.com.sistemajuridico.dao.imp.DaoGenericImp
error: java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to javax.lang.model.element.TypeElement
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.RuntimeException: java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to javax.lang.model.element.TypeElement
at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:400)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:625)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:554)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:699)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:981)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
at com.sun.tools.javac.main.Main.compile(Main.java:353)
at com.sun.tools.javac.main.Main.compile(Main.java:279)
at com.sun.tools.javac.main.Main.compile(Main.java:270)
at com.sun.tools.javac.Main.compile(Main.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56)
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1097)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:906)
at org.netbeans.modules.java.source.ant.JavacTask.execute(JavacTask.java:136)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154)
Caused by: java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to javax.lang.model.element.TypeElement
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.getMetadataClass(MetadataMirrorFactory.java:116)
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.getMetadataClass(MetadataMirrorFactory.java:178)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.TypeVisitor.visitDeclared(TypeVisitor.java:77)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.TypeVisitor.visitDeclared(TypeVisitor.java:39)
at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:696)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.ElementVisitor.visitType(ElementVisitor.java:214)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.ElementVisitor.visitType(ElementVisitor.java:50)
at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:832)
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.getMetadataClass(MetadataMirrorFactory.java:125)
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.setEnvironments(MetadataMirrorFactory.java:266)
at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:361)
... 46 more
C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\nbproject\build-impl.xml:609: The following error occurred while executing this line:
C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\nbproject\build-impl.xml:230: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)
-----------------------------------------
SEGUE AQUI O CODIGO FONTE
Meu applicationContext
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="SistemaJuridico-jarPU" />
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven />
<bean id="posicaoDao" class="br.com.sistemajuridico.dao.imp.PosicaoDaoImp" />
</beans>
---------------------------------------------
Persistence
<?xml version="1.0" encoding="UTF-8"?>
<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="SistemaJuridico-jarPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sistema_juridico"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="eclipselink.logging.level" value="all"/>
</properties>
</persistence-unit>
</persistence>
--------------------------------------------
Dao generico interface
package br.com.sistemajuridico.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
public interface DaoGeneric<T, ID extends Serializable> {
public Class<T> getObjectClass();
// Criar um objeto
public abstract T create(T entity);
// Editar um objeto
public abstract T update(T entity);
// Remover um objeto
public abstract void delete(T entity);
// Pegar um objeto pelo ID
public abstract T getById(int id);
// Verificar se registro existe
public abstract boolean exists(int id);
// Pegar todos objetos e quardar em uma lista
public abstract List<T> getAll();
// Criar query personalizadas
public abstract Query pesq(String query);
// Criar query personalizadas de SQL
public abstract Query pesqSql(String query);
public List<T> listPesqParam(String query, Map<String, Object> params);
public List<T> listPesqParam(String query, Map<String, Object> params, int maximo, int atual);
public List<T> listPesq(String query);
public T pesqParam(String query, Map<String, Object> params);
}
----------------------------------------
Dao generico
package br.com.sistemajuridico.dao.imp;
import br.com.sistemajuridico.dao.DaoGeneric;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
public class DaoGenericImp<T, ID extends Serializable> implements DaoGeneric<T, ID> {
private EntityManager entityManager;
private final Class<T> persistentClass;
@Override
public Class<T> getObjectClass() {
return this.persistentClass;
}
public DaoGenericImp() {
this.persistentClass =
(Class<T>) (((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
}
private Class<T> getPersistenceClass() {
return persistentClass;
}
@SuppressWarnings("unchecked")
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
protected EntityManager getEntityManager() {
if (entityManager == null) {
throw new IllegalStateException("Erro");
}
return entityManager;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T create(T entity) {
getEntityManager().clear();
getEntityManager().persist(entity);
return entity;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T update(T entity) {
getEntityManager().merge(entity);
return entity;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void delete(T entity) {
entity = getEntityManager().merge(entity);
getEntityManager().remove(entity);
}
@Override
public boolean exists(int id) {
if (this.getById(id) != null) {
return true;
}
return false;
}
@SuppressWarnings("unchecked")
@Override
public List<T> getAll() {
String sql = "SELECT object(o) FROM " + persistentClass.getSimpleName() + " as o ";
try {
return getEntityManager().createQuery(sql).getResultList();
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@SuppressWarnings("unchecked")
@Override
public List<T> listPesqParam(String query, Map<String, Object> params) {
Query q = getEntityManager().createQuery(query);
for (String chave : params.keySet()) {
q.setParameter(chave, params.get(chave));
}
return q.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<T> listPesqParam(String query, Map<String, Object> params, int maximo, int atual) {
Query q = getEntityManager().createQuery(query).setMaxResults(maximo).setFirstResult(atual);
for (String chave : params.keySet()) {
q.setParameter(chave, params.get(chave));
}
return q.getResultList();
}
@Override
public T getById(int id) {
try {
T entity = (T) getEntityManager().find(getPersistenceClass(), id);
return entity;
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@Override
public Query pesq(String query) {
try {
return getEntityManager().createQuery(query);
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@Override
public Query pesqSql(String query) {
try {
return getEntityManager().createNativeQuery(query);
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@SuppressWarnings("unchecked")
@Override
public List<T> listPesq(String query) {
Query q = getEntityManager().createQuery(query);
return q.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public T pesqParam(String query, Map<String, Object> params) {
Query q = getEntityManager().createQuery(query);
for (String chave : params.keySet()) {
q.setParameter(chave, params.get(chave));
}
try {
return (T) q.getSingleResult();
} catch (NoResultException nre) {
return null;
}
}
}
-------------------------------------------------
Interface Posicao
package br.com.sistemajuridico.dao;
import br.com.sistemajuridico.model.Posicao;
public interface PosicaoDao extends DaoGeneric<Posicao, Integer> {
}
------------------------------------------------
Classe Posicao
package br.com.sistemajuridico.dao.imp;
import br.com.sistemajuridico.dao.PosicaoDao;
import br.com.sistemajuridico.model.Posicao;
public class PosicaoDaoImp extends DaoGenericImp<Posicao,Integer> implements PosicaoDao {
}
-------------------------------------------------
Entidade
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.sistemajuridico.model;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author Andrei
*/
@Entity
@Table(name = "posicao")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Posicao.findAll", query = "SELECT p FROM Posicao p"),
@NamedQuery(name = "Posicao.findByIdPosicao", query = "SELECT p FROM Posicao p WHERE p.idPosicao = :idPosicao"),
@NamedQuery(name = "Posicao.findByDescricao", query = "SELECT p FROM Posicao p WHERE p.descricao = :descricao")})
public class Posicao implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "idPosicao")
private Integer idPosicao;
@Basic(optional = false)
@Column(name = "Descricao")
private String descricao;
public Posicao() {
}
public Posicao(Integer idPosicao) {
this.idPosicao = idPosicao;
}
public Posicao(Integer idPosicao, String descricao) {
this.idPosicao = idPosicao;
this.descricao = descricao;
}
public Integer getIdPosicao() {
return idPosicao;
}
public void setIdPosicao(Integer idPosicao) {
this.idPosicao = idPosicao;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idPosicao != null ? idPosicao.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Posicao)) {
return false;
}
Posicao other = (Posicao) object;
if ((this.idPosicao == null && other.idPosicao != null) || (this.idPosicao != null && !this.idPosicao.equals(other.idPosicao))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.com.sistemajuridico.model.Posicao[ idPosicao=" + idPosicao + " ]";
}
}
-------------------------------------------------
Classe de teste
package br.com.sistemajuridico.dao.imp;
import br.com.sistemajuridico.dao.PosicaoDao;
import br.com.sistemajuridico.model.Posicao;
import java.util.List;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.junit.Test;
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:**/applicationContext.xml"})
public class PosicaoDaoImpTest {
private PosicaoDao posicaoDao;
private Integer id = 1;
@Autowired
public void setPosicaoDao(PosicaoDao posicaoDao) {
this.posicaoDao = posicaoDao;
}
@Test
public void testCreate() {
Posicao posicao = null;
posicao = posicaoDao.create(getPosicao());
assertNotNull(posicao);
assertEquals(id, posicao.getIdPosicao());
assertEquals("Teste", posicao.getDescricao());
}
@Test
public void testUpdate() {
Posicao posicao = posicaoDao.getById(id);
posicao.setDescricao("Teste2");
posicao = posicaoDao.update(posicao);
assertNotNull(posicao);
}
private Posicao getPosicao() {
Posicao posicao = new Posicao();
posicao.setIdPosicao(id);
posicao.setDescricao("Teste");
return posicao;
}
@Test
public void testGetAll() {
List<Posicao> posicoes = posicaoDao.getAll();
assertNotNull(posicoes);
assertEquals(1, posicoes.size());
assertEquals("Teste2", posicoes.get(0).getDescricao());
}
public void testListPesqParam() {
}
public void testPesqParam() {
}
public void testDelete() {
}
public void testExists() {
}
}
------------------------------------------------------
Todos frameworks usados
Spring 3.0.2 do netbeans 7
hibernate do netbeans 7
eclipselink do netbeans 7
driver mysql do netbeans
init:
Deleting: C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\build\built-jar.properties
Deleting: C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\null1821604262
Compiling 2 source files to C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\build\classes
Note: Creating non-static metadata factory ...
Note: Building metadata class for round element: br.com.sistemajuridico.dao.imp.DaoGenericImp
error: java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to javax.lang.model.element.TypeElement
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.RuntimeException: java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to javax.lang.model.element.TypeElement
at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:400)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:625)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:554)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:699)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:981)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
at com.sun.tools.javac.main.Main.compile(Main.java:353)
at com.sun.tools.javac.main.Main.compile(Main.java:279)
at com.sun.tools.javac.main.Main.compile(Main.java:270)
at com.sun.tools.javac.Main.compile(Main.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56)
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1097)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:906)
at org.netbeans.modules.java.source.ant.JavacTask.execute(JavacTask.java:136)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154)
Caused by: java.lang.ClassCastException: com.sun.tools.javac.code.Symbol$TypeSymbol cannot be cast to javax.lang.model.element.TypeElement
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.getMetadataClass(MetadataMirrorFactory.java:116)
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.getMetadataClass(MetadataMirrorFactory.java:178)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.TypeVisitor.visitDeclared(TypeVisitor.java:77)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.TypeVisitor.visitDeclared(TypeVisitor.java:39)
at com.sun.tools.javac.code.Type$ClassType.accept(Type.java:696)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.ElementVisitor.visitType(ElementVisitor.java:214)
at org.eclipse.persistence.internal.jpa.modelgen.visitors.ElementVisitor.visitType(ElementVisitor.java:50)
at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:832)
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.getMetadataClass(MetadataMirrorFactory.java:125)
at org.eclipse.persistence.internal.jpa.modelgen.MetadataMirrorFactory.setEnvironments(MetadataMirrorFactory.java:266)
at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:361)
... 46 more
C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\nbproject\build-impl.xml:609: The following error occurred while executing this line:
C:\Users\Andrei\Documents\Software Manager\SistemaJuridico\SistemaJuridico-jar\nbproject\build-impl.xml:230: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 0 seconds)
-----------------------------------------
SEGUE AQUI O CODIGO FONTE
Meu applicationContext
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="SistemaJuridico-jarPU" />
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven />
<bean id="posicaoDao" class="br.com.sistemajuridico.dao.imp.PosicaoDaoImp" />
</beans>
---------------------------------------------
Persistence
<?xml version="1.0" encoding="UTF-8"?>
<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="SistemaJuridico-jarPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sistema_juridico"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="eclipselink.logging.level" value="all"/>
</properties>
</persistence-unit>
</persistence>
--------------------------------------------
Dao generico interface
package br.com.sistemajuridico.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
public interface DaoGeneric<T, ID extends Serializable> {
public Class<T> getObjectClass();
// Criar um objeto
public abstract T create(T entity);
// Editar um objeto
public abstract T update(T entity);
// Remover um objeto
public abstract void delete(T entity);
// Pegar um objeto pelo ID
public abstract T getById(int id);
// Verificar se registro existe
public abstract boolean exists(int id);
// Pegar todos objetos e quardar em uma lista
public abstract List<T> getAll();
// Criar query personalizadas
public abstract Query pesq(String query);
// Criar query personalizadas de SQL
public abstract Query pesqSql(String query);
public List<T> listPesqParam(String query, Map<String, Object> params);
public List<T> listPesqParam(String query, Map<String, Object> params, int maximo, int atual);
public List<T> listPesq(String query);
public T pesqParam(String query, Map<String, Object> params);
}
----------------------------------------
Dao generico
package br.com.sistemajuridico.dao.imp;
import br.com.sistemajuridico.dao.DaoGeneric;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
public class DaoGenericImp<T, ID extends Serializable> implements DaoGeneric<T, ID> {
private EntityManager entityManager;
private final Class<T> persistentClass;
@Override
public Class<T> getObjectClass() {
return this.persistentClass;
}
public DaoGenericImp() {
this.persistentClass =
(Class<T>) (((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
}
private Class<T> getPersistenceClass() {
return persistentClass;
}
@SuppressWarnings("unchecked")
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
protected EntityManager getEntityManager() {
if (entityManager == null) {
throw new IllegalStateException("Erro");
}
return entityManager;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T create(T entity) {
getEntityManager().clear();
getEntityManager().persist(entity);
return entity;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T update(T entity) {
getEntityManager().merge(entity);
return entity;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void delete(T entity) {
entity = getEntityManager().merge(entity);
getEntityManager().remove(entity);
}
@Override
public boolean exists(int id) {
if (this.getById(id) != null) {
return true;
}
return false;
}
@SuppressWarnings("unchecked")
@Override
public List<T> getAll() {
String sql = "SELECT object(o) FROM " + persistentClass.getSimpleName() + " as o ";
try {
return getEntityManager().createQuery(sql).getResultList();
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@SuppressWarnings("unchecked")
@Override
public List<T> listPesqParam(String query, Map<String, Object> params) {
Query q = getEntityManager().createQuery(query);
for (String chave : params.keySet()) {
q.setParameter(chave, params.get(chave));
}
return q.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<T> listPesqParam(String query, Map<String, Object> params, int maximo, int atual) {
Query q = getEntityManager().createQuery(query).setMaxResults(maximo).setFirstResult(atual);
for (String chave : params.keySet()) {
q.setParameter(chave, params.get(chave));
}
return q.getResultList();
}
@Override
public T getById(int id) {
try {
T entity = (T) getEntityManager().find(getPersistenceClass(), id);
return entity;
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@Override
public Query pesq(String query) {
try {
return getEntityManager().createQuery(query);
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@Override
public Query pesqSql(String query) {
try {
return getEntityManager().createNativeQuery(query);
} catch (NoResultException e) {
System.out.println("Nenhum Retorno");
return null;
}
}
@SuppressWarnings("unchecked")
@Override
public List<T> listPesq(String query) {
Query q = getEntityManager().createQuery(query);
return q.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public T pesqParam(String query, Map<String, Object> params) {
Query q = getEntityManager().createQuery(query);
for (String chave : params.keySet()) {
q.setParameter(chave, params.get(chave));
}
try {
return (T) q.getSingleResult();
} catch (NoResultException nre) {
return null;
}
}
}
-------------------------------------------------
Interface Posicao
package br.com.sistemajuridico.dao;
import br.com.sistemajuridico.model.Posicao;
public interface PosicaoDao extends DaoGeneric<Posicao, Integer> {
}
------------------------------------------------
Classe Posicao
package br.com.sistemajuridico.dao.imp;
import br.com.sistemajuridico.dao.PosicaoDao;
import br.com.sistemajuridico.model.Posicao;
public class PosicaoDaoImp extends DaoGenericImp<Posicao,Integer> implements PosicaoDao {
}
-------------------------------------------------
Entidade
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.sistemajuridico.model;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author Andrei
*/
@Entity
@Table(name = "posicao")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Posicao.findAll", query = "SELECT p FROM Posicao p"),
@NamedQuery(name = "Posicao.findByIdPosicao", query = "SELECT p FROM Posicao p WHERE p.idPosicao = :idPosicao"),
@NamedQuery(name = "Posicao.findByDescricao", query = "SELECT p FROM Posicao p WHERE p.descricao = :descricao")})
public class Posicao implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "idPosicao")
private Integer idPosicao;
@Basic(optional = false)
@Column(name = "Descricao")
private String descricao;
public Posicao() {
}
public Posicao(Integer idPosicao) {
this.idPosicao = idPosicao;
}
public Posicao(Integer idPosicao, String descricao) {
this.idPosicao = idPosicao;
this.descricao = descricao;
}
public Integer getIdPosicao() {
return idPosicao;
}
public void setIdPosicao(Integer idPosicao) {
this.idPosicao = idPosicao;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idPosicao != null ? idPosicao.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Posicao)) {
return false;
}
Posicao other = (Posicao) object;
if ((this.idPosicao == null && other.idPosicao != null) || (this.idPosicao != null && !this.idPosicao.equals(other.idPosicao))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.com.sistemajuridico.model.Posicao[ idPosicao=" + idPosicao + " ]";
}
}
-------------------------------------------------
Classe de teste
package br.com.sistemajuridico.dao.imp;
import br.com.sistemajuridico.dao.PosicaoDao;
import br.com.sistemajuridico.model.Posicao;
import java.util.List;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.junit.Test;
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:**/applicationContext.xml"})
public class PosicaoDaoImpTest {
private PosicaoDao posicaoDao;
private Integer id = 1;
@Autowired
public void setPosicaoDao(PosicaoDao posicaoDao) {
this.posicaoDao = posicaoDao;
}
@Test
public void testCreate() {
Posicao posicao = null;
posicao = posicaoDao.create(getPosicao());
assertNotNull(posicao);
assertEquals(id, posicao.getIdPosicao());
assertEquals("Teste", posicao.getDescricao());
}
@Test
public void testUpdate() {
Posicao posicao = posicaoDao.getById(id);
posicao.setDescricao("Teste2");
posicao = posicaoDao.update(posicao);
assertNotNull(posicao);
}
private Posicao getPosicao() {
Posicao posicao = new Posicao();
posicao.setIdPosicao(id);
posicao.setDescricao("Teste");
return posicao;
}
@Test
public void testGetAll() {
List<Posicao> posicoes = posicaoDao.getAll();
assertNotNull(posicoes);
assertEquals(1, posicoes.size());
assertEquals("Teste2", posicoes.get(0).getDescricao());
}
public void testListPesqParam() {
}
public void testPesqParam() {
}
public void testDelete() {
}
public void testExists() {
}
}
------------------------------------------------------
Todos frameworks usados
Spring 3.0.2 do netbeans 7
hibernate do netbeans 7
eclipselink do netbeans 7
driver mysql do netbeans
Andrei Hirata
Curtir tópico
+ 0
Responder
Posts
11/01/2011
Dyego Carmo
Pode estar ocorrendo de ter mais do que uma versao do eclipselink dentro do seu classpath , tentou utlizar o hibernate ?
Responder
Gostei + 0
11/01/2011
Dyego Carmo
Opa !
Agora que eu li direito... tente instalar uma nova versao do JDK e apontala dentro do netbeans , parece que esta instlacao esta corrompida !
Agora que eu li direito... tente instalar uma nova versao do JDK e apontala dentro do netbeans , parece que esta instlacao esta corrompida !
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)