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

  1. #1
    Débutant  
    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
    Points : 132
    Points
    132
    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
    Points : 15 059
    Points
    15 059
    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
    Débutant  
    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
    Points : 132
    Points
    132
    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
    Points : 15 059
    Points
    15 059
    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
    Débutant  
    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
    Points : 132
    Points
    132
    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
    Points : 15 059
    Points
    15 059
    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+.

  7. #7
    Débutant  
    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
    Points : 132
    Points
    132
    Par défaut
    Pour l'instant l'accès à la base de données se fait en dur et non en passant par le applicationContext.xml

    En faisant un New UtilisateurDaoImplique dans monotre contrôleur sa passe nique la maison en passant par l'attribut autorités avec l'interface sa plante

  8. #8
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Soit tu montres le stacktrace complet de l'erreur
    Citation Envoyé par andry.aime Voir le message
    Tu peux nous montrer le stracktrace complet de l'erreur et la classe UtilisateurDaoImpl?
    Trouver de poulet à éventrer est difficile à Maurice. Ma boule de cristal ne fonctionne plus.
    Bon courage.

  9. #9
    Débutant  
    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
    Points : 132
    Points
    132
    Par défaut
    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
    GRAVE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
    java.lang.NullPointerException
    	at com.essai.webservice.controller.UtilisateurControllerRest.getUtilisateurs(UtilisateurControllerRest.java:43)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:497)
    	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
    	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
    	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
    	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
    	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
    	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1480)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1411)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
    	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
    	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:745)
     
    oct. 05, 2016 10:07:49 AM org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet Jersey Web Application a généré une exception
    java.lang.NullPointerException
    	at com.essai.webservice.controller.UtilisateurControllerRest.getUtilisateurs(UtilisateurControllerRest.java:43)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:497)
    	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
    	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
    	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
    	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
    	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
    	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1480)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1411)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
    	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
    	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
    	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:745)
    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
    Repository
    @Transactional
    public class UtilisateurDaoImpl implements IUtilisateurDao{
    	/**
             * Méthode qui permet de lister tous les utilisateurs de la table utilisateurs
             * @return List<Utilisateur> : liste contenant tous les utilisateurs récupérés
             */
    	@SuppressWarnings("unchecked")
    	public List<Utilisateur> list() {
    		List<Utilisateur> listeUtilisateurs = null;
    		//informations de configuration
    				Configuration configuration = new Configuration();
    				configuration.configure();
     
    				ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
    				SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
     
    				//connexion à la base
    				Session session = sessionFactory.openSession();
     
    				//ouverture d'une transaction
    				Transaction tx = null;
    				tx = session.beginTransaction();
     
     
     
    				try{	
     
     
    					Query query = session.createQuery("from Utilisateur");
    					listeUtilisateurs = (List<Utilisateur>) query.list();
     
     
    				}
    				finally{
    					try{
    						sessionFactory.close();
    					}
    					catch(Exception e){
    						e.printStackTrace();
    					}
    				}
     
     
     
    		return listeUtilisateurs;		
    	}

  10. #10
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    1- T'as édité ton message son laissé un commentaire (merci pour la bonne foi et de faire perdre de temps aux lecteurs):
    Au début t'avais
    at com.pds.webservice.controller.UtilisateurControllerRest.getUtilisateurs(UtilisateurControllerRest.java:43)
    et maintenant
    at com.essai.webservice.controller.UtilisateurControllerRest.getUtilisateurs(UtilisateurControllerRest.java:43)
    2- Pourquoi utiliser de très vielles versions de Jersey et de servlet pour une nouvelle application :
    Citation Envoyé par web.xml
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    Citation Envoyé par pom.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <groupId>com.sun.jersey</groupId>
        	<artifactId>jersey-bundle</artifactId>
        	<version>1.14</version>
    3- Tu dois ajouter jersey-spring dans ton pom.xml et exclure les dépendances spring qui vont avec.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <dependency>
      <groupId>com.sun.jersey.contribs</groupId>
      <artifactId>jersey-spring</artifactId>
      <version>****</version>
      <exclusions>
         <!--Tu exclues les spring ici-->
      </exclusions>
    </dependency>
    4- Dans web.xml, remplace
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    par
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>

    5- Vire cette ligne de ton code:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="utilisateurDao" class="com.essaie.webservice.dao.impl.UtilisateurDaoImpl"></bean>
    6 - Tu dois seulement injecté sessionFactory dans UtilisateurDaoImpl et laisser hibernate gérer les connexions.

    A+.

  11. #11
    Débutant  
    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
    Points : 132
    Points
    132
    Par défaut
    2- Pourquoi utiliser de très vielles versions de Jersey et de servlet pour une nouvelle application :
    Je doit mettre quoi donc comme version de Jersey et de servlet?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="utilisateurDao" class="com.essaie.webservice.dao.impl.UtilisateurDaoImpl"></bean>
    Si je met pas sa, il me dit qu'il peut pas accéder à l'attribut du controller Rest qui est en autowired

  12. #12
    Débutant  
    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
    Points : 132
    Points
    132
    Par défaut
    voici mon nouveau 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
    30
    31
    32
    33
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    		 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
     
     
      <display-name>Archetype Created Web Application</display-name>
    	<servlet>
    		<servlet-name>jersey-servlet</servlet-name>
    		<servlet-class>
                         com.sun.jersey.spi.container.servlet.ServletContainer
                    </servlet-class>
    		<init-param>
    		     <param-name>com.sun.jersey.config.property.packages</param-name>
    		     <param-value>com.essai.webservice.controller</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>jersey-servlet</servlet-name>
    		<url-pattern>/api/*</url-pattern>
    	</servlet-mapping>
     
     
     
    		<!-- Configuration Chargeur de context -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
     
    </web-app>
    et 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
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    <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>
     
     <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>4.0.3.RELEASE</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>
     
     <dependency>
      <groupId>com.sun.jersey.contribs</groupId>
      <artifactId>jersey-spring</artifactId>
      <version>1.19.2</version>
    <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-web</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aop</artifactId>
                    </exclusion>
                </exclusions>
    </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>
    Mon interface IUtilisateurDao:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public interface IUtilisateurDao {
     
    	List<Utilisateur> list();
    }

  13. #13
    Débutant  
    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
    Points : 132
    Points
    132
    Par défaut
    J'ai refait tout mon code et voilà la nouvelle erreur:
    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
    23:27:36,636 ERROR ContextLoader:331 - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.config.internalAutoProxyCreator': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1021)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
    	at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:220)
    	at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:618)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:467)
    	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853)
    	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164)
    	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1069)
    	... 22 more
    Caused by: java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;
    	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.<init>(AbstractAutoProxyCreator.java:152)
    	at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.<init>(AbstractAdvisorAutoProxyCreator.java:47)
    	at org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator.<init>(InfrastructureAdvisorAutoProxyCreator.java:29)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)
    	... 24 more
    oct. 05, 2016 11:27:36 PM org.apache.catalina.core.StandardContext listenerStart
    GRAVE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.config.internalAutoProxyCreator': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1021)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
    	at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:220)
    	at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:618)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:467)
    	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853)
    	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164)
    	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1069)
    	... 22 more
    Caused by: java.lang.NoSuchMethodError: org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map;
    	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.<init>(AbstractAutoProxyCreator.java:152)
    	at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.<init>(AbstractAdvisorAutoProxyCreator.java:47)
    	at org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator.<init>(InfrastructureAdvisorAutoProxyCreator.java:29)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)
    	... 24 more
    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
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    <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>webservice</artifactId>
    	<packaging>war</packaging>
    	<version>1.0-SNAPSHOT</version>
    	<name>RESTfulExample Maven Webapp</name>
    	<url>http://maven.apache.org</url>
     
    	<repositories>
    		<repository>
    			<id>maven2-repository.java.net</id>
    			<name>Java.net Repository for Maven</name>
    			<url>http://download.java.net/maven/2/</url>
    			<layout>default</layout>
    		</repository>
    	</repositories>
     
    	<dependencies>
     
    		<!-- Jersey -->
    		<dependency>
    			<groupId>com.sun.jersey</groupId>
    			<artifactId>jersey-server</artifactId>
    			<version>1.8</version>
    		</dependency>
     
    		<!-- Spring 3 dependencies -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-core</artifactId>
    			<version>${spring-framework.version}</version>
    		</dependency>
     
    		<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>
     
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-web</artifactId>
    			<version>${spring-framework.version}</version>
    		</dependency>
     
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-webmvc</artifactId>
    			<version>${spring-framework.version}</version>
    		</dependency>
     
    		<!-- Jersey + Spring -->
    		<dependency>
    			<groupId>com.sun.jersey.contribs</groupId>
    			<artifactId>jersey-spring</artifactId>
    			<version>1.8</version>
    			<exclusions>
    				<exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring-core</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring-web</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring-beans</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring-context</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
     
    		<!--  JUnit -->
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>3.8.1</version>
    			<scope>test</scope>
    		</dependency>
     
    		<!--  Jackson -->
    		<dependency>  
    			<groupId>com.fasterxml.jackson.core</groupId>  
    			<artifactId>jackson-databind</artifactId>  
    			<version>2.4.1</version>  
    		</dependency>  
     
    		<!-- Hibernate -->
    		<dependency>
    			<groupId>org.hibernate</groupId>
    			<artifactId>hibernate-core</artifactId>
    			<version>4.3.1.Final</version>
    		</dependency>
     
    		<!-- Spring ORM support -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-orm</artifactId>
    			<version>${spring-framework.version}</version>
    		</dependency>
     
    	    <!-- Dbcp -->
    	    <dependency>
    	    	<groupId>commons-dbcp</groupId>
    	    	<artifactId>commons-dbcp</artifactId>
    	    	<version>1.4</version>
    	    </dependency>
     
    	    <!-- Connecteur 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> 
     
        	<!-- lokg4j -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>1.6.1</version>
    		</dependency>
    	</dependencies>
     
      	<properties>
      		<spring-framework.version>4.0.2.RELEASE</spring-framework.version>
      	</properties>
     
    	<build>
    		<finalName>webservice</finalName>
    		<plugins>
    			<plugin>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<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
    30
    31
    32
    33
    <web-app id="WebApp_ID" version="3.1"
    	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/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd">
     
    	<display-name>Restful Web Application</display-name>
     
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:applicationContext.xml</param-value>
    	</context-param>
     
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
     
    	<servlet>
    		<servlet-name>jersey-serlvet</servlet-name>
    		<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    		<init-param>
    			<param-name>com.sun.jersey.config.property.packages</param-name>
    			<param-value>com.essai.webservice.controller</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>jersey-serlvet</servlet-name>
    		<url-pattern>/rest/*</url-pattern>
    	</servlet-mapping>
     
    </web-app>
    applicationContext.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
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans
    	http://www.springframework.org/schema/beans/spring-beans-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/context
    	http://www.springframework.org/schema/context/spring-context-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.essai.webservice.controller" />
     
    	<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/exemple"/>
    		<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.essai.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>
     
    	<bean id="utilisateurDao" class="com.essai.webservice.dao.impl.UtilisateurDaoImpl" />
     
    </beans>
    UtilisateurRestController:
    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
    package com.essai.webservice.controller;
     
    import java.util.List;
     
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.Response;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RestController;
     
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.essai.webservice.dao.IUtilisateurDao;
    import com.essai.webservice.entities.Utilisateur;
     
    @RestController
    @Path("/utilisateur")
    public class UtilisateurRestController {
     
    	@Autowired
    	IUtilisateurDao  utilisateurDao;;
     
    	@GET
    	@Path("/liste")
    	@Produces(MediaType.APPLICATION_JSON)
     
    		public Response getUtilisateurs() throws Exception{
    			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();
    		}
    }
    UtilisateurDaoImpl:
    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
    package com.essai.webservice.dao.impl;
     
    import java.util.List;
     
    import org.hibernate.SessionFactory;
    import org.springframework.stereotype.Repository;
    import org.springframework.transaction.annotation.Transactional;
     
    import com.essai.webservice.dao.IUtilisateurDao;
    import com.essai.webservice.entities.Utilisateur;
     
    @Transactional
    @Repository
    public class UtilisateurDaoImpl implements IUtilisateurDao {
    	private SessionFactory sessionFactory;
     
    	@SuppressWarnings("unchecked")
    	public List<Utilisateur> list() {
    		return sessionFactory.getCurrentSession().createQuery("from Utilisateur").list();
    	}
    }

  14. #14
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu dois aussi exclure spring-aop de ton pom dans la dépendance de jersey-spring
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring-aop</artifactId>
    				</exclusion>

    A+.

  15. #15
    Débutant  
    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
    Points : 132
    Points
    132
    Par défaut
    Merci
    Cela fonctionne !!!
    As-tu la possibilité de me dire ce qui ne sert pas dans mon pom.xml, web.xml et dans mon applicationContext.xml pour que je puisse avoir un code propre stp?

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