IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

[Spring-jersey] Injection de dépendance


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut [Spring-jersey] Injection de dépendance
    Bonjour,

    J'essaie de développer un web service rest qui accède à une base de données avec hibernate mais cela me provoque une exception lorsque que je souhaite interroger ma base : NullPointer.
    Mon problème je pense est que je ne vois pas comment déclarer mon applicationContext.xml

    voici mon web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" 
    	xmlns="http://java.sun.com/xml/ns/j2ee" 
    	xmlns:xsi="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>Archetype Created Web Application</display-name>
        <!-- Auto scan REST service -->
        <context-param>
            <param-name>resteasy.scan</param-name>
            <param-value>true</param-value>
        </context-param>
     
        <servlet>
            <servlet-name>resteasy-servlet</servlet-name>
            <servlet-class>
                org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
            </servlet-class>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>resteasy-servlet</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
    </web-app>
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Citation Envoyé par totot Voir le message
    Mon problème je pense est que je ne vois pas comment déclarer mon applicationContext.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <context-param>
    	<param-name>contextConfigLocation</param-name>
    	<param-value>
    		classpath:applicationContext.xml
    	</param-value>
    </context-param>

    A+.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    J'ai bien déclarer mon applicationContext.xml mais j'ai toujours le null pointer.
    J'utiliser jersey pour mon web service.

    Quand je veut passer via l'interface avec l'annotation autowired, sa provoque le null pointer, il ne veux pas passer par ma ligne de code et quand je fait un new de la classe qui compote la méthode à appeler, tout se passe bein

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Soit les membres du forum vont utiliser une boule de cristal pour trouver l'erreur, là, tu pourras avoir un malheur.
    Soit tu montres le stacktrace complet de l'erreur, applicationContext.xml, le code java, web.xml, pom.xml si tu utilises maven, des âmes charitables pourront t'aider.

    A+.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Voilà mon pom.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.essai.webservice</groupId>
      <artifactId>exempleWebService</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>exempleWebService Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <dependencies>  
      	<dependency>
      		<groupId>junit</groupId>  
      		<artifactId>junit</artifactId>  
      		<version>3.8.1</version>  
      		<scope>test</scope>  
      	</dependency>  
     
      	<dependency>  
      		<groupId>org.springframework</groupId>  
       		<artifactId>spring-webmvc</artifactId>  
    		<version>${spring-framework.version}</version>
      	</dependency> 
       	<dependency>  
       		<groupId>com.fasterxml.jackson.core</groupId>  
       		<artifactId>jackson-databind</artifactId>  
       		<version>2.4.1</version>  
       	</dependency>  
     
       	<!-- Spring and Transactions -->
     	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>${spring-framework.version}</version>
    	</dependency>
     
    	<dependency>
    	<groupId>org.springframework</groupId>
    		<artifactId>spring-tx</artifactId>
    		<version>${spring-framework.version}</version>
    	</dependency>
     
    	<!-- Spring ORM support -->
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-orm</artifactId>
    		<version>${spring-framework.version}</version>
    	</dependency>
     
    	<!-- Hibernate -->
    	<dependency>
    		<groupId>org.hibernate</groupId>
    		<artifactId>hibernate-core</artifactId>
    		<version>4.3.1.Final</version>
    	</dependency>
     
        <!-- Dbcp -->
        <dependency>
        	<groupId>commons-dbcp</groupId>
        	<artifactId>commons-dbcp</artifactId>
        	<version>1.4</version>
        </dependency>
     
        <!-- Connector MySql -->
        <dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>5.1.36</version>
        </dependency>
     
        <!--  Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>0.11.0</version>
            <scope>provided</scope>
        </dependency> 
     
        <dependency>
        	<groupId>com.sun.jersey</groupId>
        	<artifactId>jersey-bundle</artifactId>
        	<version>1.14</version>
    	</dependency>
     
    	<dependency>
    		<groupId>asm</groupId>
    		<artifactId>asm-all</artifactId>
    		<version>3.3.1</version>
    	</dependency> 
     
    			<!-- slf4j-log4j -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>1.6.1</version>
    		</dependency>
     
     
     </dependencies>  
     
     
      <properties>
      	<!-- Spring -->
    	<spring-framework.version>4.2.1.RELEASE</spring-framework.version>
    	<resteasy.version>2.3.2.Final</resteasy.version>
     
      </properties>
      <build>
      	<finalName>webService</finalName>
      	<plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
            </configuration>
          </plugin>
      	</plugins>
      </build>
    </project>
    web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" 
    	xmlns="http://java.sun.com/xml/ns/j2ee" 
    	xmlns:xsi="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>Archetype Created Web Application</display-name>  
    	<servlet>
    		<servlet-name>Jersey Web Application</servlet-name>
    		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Jersey Web Application</servlet-name>
    		<url-pattern>/api/*</url-pattern>
    	</servlet-mapping>
     
    		<context-param>
            <param-name>contextConfigurationLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
    	</context-param>
     
    		<!-- Configuration Chargeur de context -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
     
    </web-app>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?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"
    	xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
    		http://www.springframework.org/schema/beans 
    		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/context 
    		http://www.springframework.org/schema/context/spring-context-3.0.xsd
    		http://www.springframework.org/schema/tx 
    		http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    		http://www.springframework.org/schema/mvc 
    		http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
     
    <context:annotation-config/>
    	<context:component-scan base-package="com.essaie.webservice"></context:component-scan>
     
    	<mvc:annotation-driven/>
    	<mvc:resources location="/resources/" mapping="/resources/**"/>
     
    	<!-- Configuration d'accès à la base de données -->
    	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    		<property name="url" value="jdbc:mysql://localhost/exemplep"/>
    		<property name="username" value="root"/>
    		<property name="password" value=""/>
    	</bean>
     
    	<!-- Configuration Session Factory : permet d'ouvrir une connexion à la bd-->
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    		<property name="dataSource" ref="dataSource"/>
     		<property name="packagesToScan" value="com.essaie.webservice.entities" /> 
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    				<prop key="hibernate.show_sql">true</prop>
    				<prop key="hibernate.enable_Lazy_Load_no_trans">true</prop>
    				<prop key="hibernate.default_schema">exemple</prop>
    				<prop key="format_sql">true</prop>
    				<prop key="use_sql_comments">true</prop>
    			</props>
    		</property>
    	</bean>
     
    	<tx:annotation-driven transaction-manager="transactionManager"/>
     
    	<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory"/>
    	</bean>
     
    		<!-- Configuration des beans couche DAO -->
    	<bean id="utilisateurDao" class="com.essaie.webservice.dao.impl.UtilisateurDaoImpl"></bean>
     
     
    </beans>
    contrôlleur rest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @RestController
    @Path("/utilisateur")
    public class UtilisateurControllerRest {
    	//@Autowired /**Permet de demander une injection automatique par type */
    	private IUtilisateurDao utilisateurDao;
        @Autowired
        public void setUtilisateurDao(IUtilisateurDao utilisateurDao)
        {
          this.utilisateurDao = utilisateurDao;
        }
    	/**
             * Méthode qui permet de récupérer la liste des utilisateurs
             * Appelée pour l'url /utilisateur/liste
             * @param ModelMap modelMap : HashMap amélioré dans lequel on place toutes les informations
             * que l'on souhaite rendre disponible lors de la génération de la vue avec la jsp
             * @return String utilisateurs : page à afficher à l'utilisateur
             */
    	@GET
    	@Path("/liste")
    	 @Produces(MediaType.APPLICATION_JSON)
     
    	public Response getUtilisateurs() throws Exception{
    		// Instantiate DAO and SELECT all tables' name
    		//UtilisateurDaoImpl das = new UtilisateurDaoImpl();
    		List<Utilisateur> listeUtilisateurs =  utilisateurDao.list();
     
    		ObjectMapper mapper = new ObjectMapper();
     
    		//Object to JSON in String
    		String jsonInString = mapper.writeValueAsString(listeUtilisateurs);
     
    		// Return JSON Data of table content
    		return Response.status(200).entity(jsonInString).build();
    //		return "Bonjour";
    	}
    }
    C'est lors de l'appel de cette ligne List<Utilisateur> listeUtilisateurs = utilisateurDao.list(); que l'erreur se produit. Il ne passe même pas dans la ligne. J'ai l'impression qu'il rejette les interface ou bien les annotation @Autowired

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="utilisateurDao" class="com.essaie.webservice.dao.impl.UtilisateurDaoImpl"></bean>
    Je suspecte le NullPointerException dans la classe UtilisateurDaoImpl, que tu as oublié d'injecté quelque chose comme sessionFactory. Tu peux nous montrer le stracktrace complet de l'erreur et la classe UtilisateurDaoImpl?

    A+.

Discussions similaires

  1. Problème de Performances entre bases avec une même requête
    Par olivier_44 dans le forum Administration
    Réponses: 4
    Dernier message: 18/04/2011, 10h22
  2. Réponses: 6
    Dernier message: 04/08/2009, 14h59
  3. Réponses: 6
    Dernier message: 30/01/2009, 20h18
  4. Problème de relation 1-N avec hibernate 3
    Par otam_otam dans le forum Hibernate
    Réponses: 3
    Dernier message: 15/04/2008, 11h12
  5. [VB.NET] Problème de connexion à la base avec VB.net
    Par Bqda dans le forum Windows Forms
    Réponses: 13
    Dernier message: 02/04/2006, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo