Bom dia a todos,
Estou tendo a seguinte exceção:
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at sca.app.AbrirTurmaPresenter.validarMatricula(AbrirTurmaPresenter.java:84)
at sca.app.AbrirTurmaPresenter.actionPerformed(AbrirTurmaPresenter.java:53)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'salaRepositorio' defined in file [C:\workspace\SCA - TCC\resources\ctx\sca-springConfig.xml]: Initialization of bean failed; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'salaDAO' of bean class [sca.domain.repositorio.SalaRepositorio]: No property 'salaDAO' found
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
at sca.domain.repositorio.RepositorioFabrica.<clinit>(RepositorioFabrica.java:11)
... 27 more
Caused by: org.springframework.beans.InvalidPropertyException: Invalid property 'salaDAO' of bean class [sca.domain.repositorio.SalaRepositorio]: No property 'salaDAO' found
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:382)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1288)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1249)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
... 41 more
Mas não consigo encontrar o erro,pois fiz o .xml do spring:
<?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.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- DAOS -->
<bean id="salaDAO" class="sca.infra.dao.SalaDAOJpa"/>
<!-- REPOSITORIES -->
<bean id="salaRepositorio" class="sca.domain.repositorio.SalaRepositorio">
<property name="salaDAO">
<ref local="salaDAO"/>
</property>
</bean>
<!-- DEMAIS BEANS -->
<bean id="estrategiaCalculoGrau" class="sca.domain.EstrategiaCalculoGrau2009" />
<bean id="inscricao" class="sca.domain.Inscricao">
<property name="estrategiaCalculoGrau">
<ref local="estrategiaCalculoGrau" />
</property>
</bean>
</beans>
A classe de domínio referida está no arquivo de persistência:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="SCAPU" transaction-type="RESOURCE_LOCAL">
<class>sca.domain.Sala</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.connection.url"
value="jdbc:hsqldb:hsql://localhost/SCADB" />
<property name="hibernate.connection.username" value="sa" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
</properties>
</persistence-unit>
</persistence>
A classe de fábrica de repositórios já tem o bean:
package sca.domain.repositorio;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class RepositorioFabrica {
private static String rootContextDirectoryClassPath = "resources/ctx";
private static String startupContextPath = rootContextDirectoryClassPath
+ "/sca-springConfig.xml";
private static ApplicationContext ctx = new FileSystemXmlApplicationContext(
startupContextPath);
public static SalaRepositorio getSalaRepositorio(){
return (SalaRepositorio) ctx
.getBean("salaRepositorio");
}
}
E a classe de repositório está feita:
package sca.domain.repositorio;
import java.util.List;
import sca.domain.Sala;
import sca.infra.dao.DAOException;
import sca.infra.dao.SalaDAO;
public class SalaRepositorio {
private SalaDAO salaDAO;
public void setSalaDao(SalaDAO salaDAO) {
this.salaDAO = salaDAO;
}
public void incluir(Sala sala) throws RepositorioException {
try {
salaDAO.incluir(sala);
} catch (DAOException e) {
throw new RepositorioException(e.getMessage(), e);//"Erro na inclusão da sala"
}
}
public void excluir(Sala sala) throws RepositorioException {
try {
salaDAO.excluir(sala);
}
catch (DAOException e) {
throw new RepositorioException("Erro na exclusão da Sala", e);
}
}
public List<Sala> obterTodasSalas()throws RepositorioException{
try{
return salaDAO.obterTodasSalas();
}catch (DAOException e) {
throw new RepositorioException("Erro na recuperação das Salas", e);
}
}
}
A classe que conecta com o banco também está feita:
package sca.infra.dao;
import java.util.List;
import sca.domain.Sala;
public class SalaDAOJpa implements SalaDAO{
private GenericDAOJPA<Sala> genericDAO = new GenericDAOJPA<Sala>();
public void atualizar(Sala sala) throws DAOException {
genericDAO.alterar(sala);
}
@Override
public void excluir(Sala sala) throws DAOException {
genericDAO.excluir(Sala.class, sala.getId());
}
@Override
public void incluir(Sala sala) throws DAOException {
genericDAO.incluir(sala);
}
@Override
public List<Sala> obterTodasSalas()throws DAOException{
return genericDAO.obterTodos(Sala.class);
}
}
e a interface também:
package sca.infra.dao;
import java.util.List;
import sca.domain.Sala;
public interface SalaDAO {
void excluir(Sala sala) throws DAOException;
void incluir(Sala sala) throws DAOException;
List<Sala> obterTodasSalas() throws DAOException;
}
Estou desesperado, pois meu tempo já é curto e não posso perdê-lo com isso.