Estou com um problema aqui por motivos de performance vou ter que migrar minha aplicacao de spring 2.5 para 3.
Nao estou mais conseguindo rodar o projeto gera a seguinte excessao.
GRAVE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Bean name 'arquivoDao' is already used in this <beans> element
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:316)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.checkNameUniqueness(BeanDefinitionParserDelegate.java:527)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:473)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:445)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.processBeanDefinition(DefaultBeanDefinitionDocumentReader.java:311)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:202)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:181)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:381)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
minha classe ArquivoServiceImpl
package service.impl;
import java.io.File;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import dao.ArquivoDao;
import dao.Dao;
import dom.Anuncio;
import dom.Arquivo;
import dom.Banner;
import dom.Institucional;
import dom.InstitucionalMenu;
import dom.Noticia;
import dom.SlideShow;
public class ArquivoServiceImpl implements service.ArquivoService {
private ArquivoDao dao;
@Override
public void excluir(Arquivo o) {
this.dao.excluir(o);
}
@Override
public Arquivo obter(Long id) {
return (Arquivo) this.dao.obter(id);
}
@Override
public void salvar(Arquivo o) {
this.dao.salvar(o);
}
@Override
public void setDao(Dao<Arquivo> dao) {
this.dao = (ArquivoDao)dao;
}
@Override
public List<Arquivo> obterPorNot(Noticia id) {
return this.dao.obterPorNot(id);
}
@Override
public List<Arquivo> obterPorAnuncio(Anuncio id) {
return this.dao.obterPorAnuncio(id);
}
@Override
public Long lastArqId() {
return this.dao.lastArqId();
}
@Override
public List<Arquivo> obterPorBanner(Banner b) {
return this.dao.obterPorBanner(b);
}
@Override
public List<Arquivo> obterPorSlide(SlideShow b) {
return this.dao.obterPorSlide(b);
}
@Override
public List<Arquivo> listar() {
// TODO Auto-generated method stub
return null;
}
@Override
public void apagarArquivo(String endereco){
FacesContext fc = FacesContext.getCurrentInstance();
ServletContext sc = (ServletContext)fc.getExternalContext().getContext();
String real = sc.getRealPath("/");
File file = new File(real + endereco);
file.delete();
}
@Override
public List<Arquivo> obterPorInst(Institucional institucional) {
return this.dao.obterPorInst(institucional);
}
@Override
public List<Arquivo> obterPorInst(Long id) {
return this.dao.obterPorInst(id);
}
@Override
public List<Arquivo> obterPorInst(InstitucionalMenu institucionalMenu) {
return this.dao.obterPorInst(institucionalMenu);
}
}
meu applicationContext
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!--CONEXÃO COM BANCO -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.postgresql.Driver</value>
</property>
<property name="url">
<!-- <value>jdbc:postgresql://10.0.0.212/site</value>-->
<value>jdbc:postgresql://localhost:5432/site</value>
</property>
<property name="username">
<value>postgres</value>
</property>
<property name="password">
<value>1</value>
</property>
</bean>
<bean name="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingLocations">
<list>
<value>classpath:/dom/*.hbm.xml</value>
</list>
</property>
</bean>
<bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!--Controle transacional -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="obter*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!--Services e DAO -->
<bean name="arquivoDao" class="dao.hibernate.ArquivoDaoHibernate">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean>
<bean id="arquivoService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="arquivoServiceTarget" />
</bean>
<bean name="arquivoServiceTarget" parent="txProxyTemplate">
<property name="target">
<bean class="service.impl.ArquivoServiceImpl">
<property name="dao" ref="arquivoDao" />
</bean>
</property>
</bean>