pb injection entityManager dans un web service
Bonsoir,
voila mnt j'ai 2 jours que je glaire avec la création d'un web service qui permet d'ajouter un enregistrement dans base de données avec le framework JPA (hibernate)
voici tous les éléments du projet :
L'entité que j'utilise pour ajouter l'enregistrement :
Code:
1 2 3 4 5 6 7 8 9
| @Entity
public class Town {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
String name;
int population;
// getters/setters
} |
Une classe dao :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Repository
@Transactional
public class TownDao {
private EntityManager entityManager ;
@PersistenceContext(name="testWebService")
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
public void save(Town town){
entityManager.persist(town);
}
} |
Les fichiers de configuration de spring
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${connection.driver_class}" />
<property name="url" value="${connection.url}" />
<property name="username" value="${connection.username}" />
<property name="password" value="${connection.password}" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="testWebService" />
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="dataSource" ref="dataSource" />
<property name="loadTimeWeaver">
<bean
class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
</property>
<property name="jpaVendorAdapter" ref="vendorAdapter" />
</bean>
<bean id="vendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="${hibernate.dialect}" />
<property name="showSql" value="${show_sql}" />
<property name="generateDdl" value="true" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<tx:annotation-driven/>
<context:annotation-config />
<context:component-scan base-package="com.test.dao" />
<context:property-placeholder location="classpath:jdbcConfig.properties" /> |
Un dossier META-INF qui contient le fichier persistence.xml
Code:
1 2 3
| <persistence-unit name="testWebService">
<class>com.gise.model.Town</class>
</persistence-unit> |
j'ai ajouté dans le fichier web.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext*.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener> |
avec eclipse j'ai crée un nouveau web service.
après avoir générer le fichier .wsdl
j'ai pu consommer le le fichier ".wsdl" mais j'ai ce pb
un nullpointerexception avec la valeur de entityManager dans la classe TownDao.
La question comment faire la jointure entre un web service et les beans de spring ??
S.V.P
Help!!!!!!!!!!!:cry: