В проекте есть вот такое определение ДАО.
package ....dao.impl;<br/>
<br/>
@Repository<br/>
public class ChatSessionDaoImpl extends HibernateCrudDao<ChatSession<User<PersonalInfo, ContactInfo, LoginInfo, BusinessInfo>>> implements ChatSessionDao {<br/>
<br/>
}
И на него как-то плохо реагирует Spring
А вот файлик root-context.xml
<?xml version="1.0" encoding="UTF-8"?><br/>
<beans xmlns="http://www.springframework.org/schema/beans"<br/>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br/>
xmlns:context="http://www.springframework.org/schema/context"<br/>
xsi:schemaLocation="http://www.springframework.org/schema/beans <a href="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">www.springframework.org/schema/beans/spring-beans-3.0.xsd</a><br/>
<a href="http://www.springframework.org/schema/context">www.springframework.org/schema/context</a> <a href="http://www.springframework.org/schema/context/spring-context.xsd">www.springframework.org/schema/context/spring-context.xsd</a><br/>
<br/>
"><br/>
<br/>
<br/>
<context:annotation-config /><br/>
<context:component-scan base-package="....dao"/><br/>
<context:component-scan base-package="....service"/><br/>
<context:component-scan base-package="...o.dao.impl"/><br/>
<context:component-scan base-package="....service.impl"/><br/>
<br/>
При попытке получить объект типа ChatSessionDaoImpl посредством @Autowired вылетает вот что:
Error creating bean with name 'chatSessionDaoImpl' defined in file [/.../dao/impl/ChatSessionDaoImpl.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [....dao.impl.ChatSessionDaoImpl]: Constructor threw exception; nested exception is java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class
Сдается мне это из-за генериков и поведении Spring DI при рантайме. Кто-то сталкивался? Лечил? Я видел способ только отнаследовать от нужного класса, и не упоминать в потомке генериков, но не хочется делать это для каждого сервиса или дао.