Bonjour,
après avoir suivi un tuto sur internet pour intégrer Spring à mon application web. cela ne fonction toujours pas
Ma classe Dao, ne récupère pas l'entityManager qui aurait du être instancié par Spring. J'ai cherché toute l'apres midi et je ne trouve pas. J'ai surement oublié quelque chose mais la je vois pas.
donc voici des détails
applicationContext.xml (fichier de configuration de Spring)
web.xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schem...-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schem...ontext-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost/DB_ABAQUE" p:username="login" p:password="pwd" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="dataSource" p:persistence-unit-name="abaque">
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
p:database="MYSQL"
p:databasePlatform="org.hibernate.dialect.MySQL5InnoDBDialect"
p:showSql="true" p:generate-ddl="true" />
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" />
<context:annotation-config />
<context:component-scan base-package="abaque" />
<tx:annotation-driven />
</beans>
persistence.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>AbaqueCharges</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<servlet>
<description>
</description>
<display-name>SiteServlet</display-name>
<servlet-name>SiteServlet</servlet-name>
<servlet-class>abaque.traitement.SiteServlet</servlet-class>
</servlet>
DAO<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlnssi="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="abaque" transaction-type="RESOURCE_LOCAL">
<class>abaque.metier.Complexite</class>
<class>abaque.metier.Etape</class>
<class>abaque.metier.Fonction</class>
<class>abaque.metier.FonctionTypeComplexite</class>
<class>abaque.metier.Lot</class>
<class>abaque.metier.LotTypeComplexite</class>
<class>abaque.metier.Phase</class>
<class>abaque.metier.PhaseLot</class>
<class>abaque.metier.Projet</class>
<class>abaque.metier.Type</class>
<class>abaque.metier.User</class>
</persistence-unit>
</persistence>
@Repository
public class UserDAO {
@PersistenceContext
private EntityManager em;
private static final Logger log = Logger
.getLogger(GestionnaireSite.class);
public UserDAO(){
}
@SuppressWarnings("unchecked")
public List<User> searchUserByLoginPwd(User user){
System.out.println("user2 "+user.getLogin() + " - "+user.getPwd());
//affiche bien le login et le mot de passe
if(em == null) System.out.println("em null");
//affiche em null
System.out.println("em "+em.toString());
//une exception apparait -> NullPointerException
Query queryUser = em.createQuery("select user from User user where user.login='" + user.getLogin() + "' and user.pwd='" + user.getPwd() + "'");
System.out.println("queryUser "+queryUser);
List<User> users = queryUser.getResultList();
System.out.println("users "+users.size());
return users;
}
}
Partager