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

Services Web Java Discussion :

[CXF][Spring][Tomcat][Débutant] Créer un service REST


Sujet :

Services Web Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Par défaut [CXF][HTTP Binding][Débutant] Créer un service REST
    Voir message n°4 SVP

  2. #2
    Membre Expert
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Par défaut
    Je en comprends pas pourquoi tu as besoin de Spring, de CXF, et Tomcat. Si tu débutes, prends une implémentation JAX-RS (le standard pour les WS RESTful, utilisation de POJO) et utilise simplement le JDK - https://jersey.dev.java.net/use/getting-started.html

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Par défaut
    Citation Envoyé par alexismp Voir le message
    Je en comprends pas pourquoi tu as besoin de Spring, de CXF, et Tomcat. Si tu débutes, prends une implémentation JAX-RS (le standard pour les WS RESTful, utilisation de POJO) et utilise simplement le JDK - https://jersey.dev.java.net/use/getting-started.html
    Merci pour ta réponse.
    C'est dans le cadre de mon projet que j'ai besoin de ces technos : Spring, CXF et Tomcat.

    Depuis cette erreur, j'ai réussi à avancer : j'ai intégré CXF à Spring et compiler le tout dans un war pour Tomcat.
    Aujourd'hui, je suis coincé sur un autre problème : je n'arrive pas à appeler mon webservice !

    Je vous donnerai d'autres détails un peu plus tard...

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Par défaut
    J'ai donc suivi les étapes présentes sur le site officiel
    http://cwiki.apache.org/CXF20DOC/http-binding.html

    1/ Ajouter l'annotation @Webservice à mon interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @WebService
    public interface ProcessService {
    Je l'ai également fait sur mon Impl mais je ne suis pas sûr qu'il faille le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @WebService(
    		endpointInterface = "xxxxxxxxx.ihm.services.ProcessService", 
    		serviceName = "processService")
    public class ProcessServiceImpl implements ProcessService {
    2/ Dans mon interface, j'ai ajouté une annotation @Get, @HttpResource, @WebParam à la méthode que je souhaite exposer au webservice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	@Get
    	@HttpResource(location="/operation/{id}") 
    	public List<Operation> getOperationsWithStatusForInhabitant(@WebParam(name="id") String inhabitantId) throws IhmException;
    3/ J'ai configuré mon fichier de config Spring
    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
     
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:jee="http://www.springframework.org/schema/jee"
           xmlns:jaxws="http://cxf.apache.org/jaxws"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                 http://www.springframework.org/schema/jee
                 http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
                 http://cxf.apache.org/jaxws
                 http://cxf.apache.org/schemas/jaxws.xsd">
        <import resource="file:${org.intalio.tempo.configDirectory}/tempo-formmanager.xml"/>
     
        <import resource="classpath:META-INF/cxf/cxf.xml"/>
        <import resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml"/>
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
     
        <jaxws:endpoint id="processService"
                implementor="xxxxxxxx.ihm.services.impl.ProcessServiceImpl"
                address="/services"
                bindingUri="http://apache.org/cxf/binding/http">
            <jaxws:serviceFactory>
                <bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
                    <property name="wrapped" value="false" />
                </bean>
            </jaxws:serviceFactory>
        </jaxws:endpoint>
    4/ Et mon fichier 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
     
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
     
        <context-param>
            <param-name>contextClass</param-name>
            <param-value>org.intalio.tempo.web.SysPropWebApplicationContext</param-value>
        </context-param>
     
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>file:${org.intalio.tempo.configDirectory}/vdl-ihm.xml</param-value>
        </context-param>
     
        <servlet>
            <servlet-name>CXFServlet</servlet-name>
            <display-name>CXF Servlet</display-name>
            <servlet-class>
                org.apache.cxf.transport.servlet.CXFServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>CXFServlet</servlet-name>
            <url-pattern>/services/*</url-pattern>
        </servlet-mapping>
    Est-ce qu'il y a d'autres étapes ?

    Comment pourrais-je accéder à mon webservice REST ensuite ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2004
    Messages : 103
    Par défaut La solution
    Voici la solution en ROUGE MAJUSCULES, à partir de ce que j'ai lu de la doc officielle
    http://cwiki.apache.org/CXF20DOC/http-binding.html

    1/ Ajouter l'annotation @Webservice à mon interface OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @WebService
    public interface ProcessService {
    Je l'ai également fait sur mon Impl mais je ne suis pas sûr qu'il faille le faire PAS BESOIN, TOUTES LES ANNOTATIONS SE FONT AU NIVEAU DE L'INTERFACE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @WebService(
    		endpointInterface = "xxxxxxxxx.ihm.services.ProcessService", 
    		serviceName = "processService")
    public class ProcessServiceImpl implements ProcessService {
    2/ Dans mon interface, j'ai ajouté une annotation @Get, @HttpResource, @WebParam à la méthode que je souhaite exposer au webservice OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	@Get
    	@HttpResource(location="/operation/{id}") 
    	public List<Operation> getOperationsWithStatusForInhabitant(@WebParam(name="id") String inhabitantId) throws IhmException;
    3/ J'ai configuré mon fichier de config Spring L'ERREUR EST NOTEE EN ROUGE
    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
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:jee="http://www.springframework.org/schema/jee"
           xmlns:jaxws="http://cxf.apache.org/jaxws"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                 http://www.springframework.org/schema/jee
                 http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
                 http://cxf.apache.org/jaxws
                 http://cxf.apache.org/schemas/jaxws.xsd">
        <import resource="file:${org.intalio.tempo.configDirectory}/tempo-formmanager.xml"/>
    
        <import resource="classpath:META-INF/cxf/cxf.xml"/>
        <import resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml"/>
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
        
        <jaxws:endpoint id="processService" <--L'ERREUR EST ICI
                implementor="xxxxxxxx.ihm.services.impl.ProcessServiceImpl"
                address="/services"
                bindingUri="http://apache.org/cxf/binding/http">
            <jaxws:serviceFactory>
                <bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
                    <property name="wrapped" value="false" />
                </bean>
            </jaxws:serviceFactory>
        </jaxws:endpoint>
    4/ Et mon fichier 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
     
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
     
        <context-param>
            <param-name>contextClass</param-name>
            <param-value>org.intalio.tempo.web.SysPropWebApplicationContext</param-value>
        </context-param>
     
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>file:${org.intalio.tempo.configDirectory}/vdl-ihm.xml</param-value>
        </context-param>
     
        <servlet>
            <servlet-name>CXFServlet</servlet-name>
            <display-name>CXF Servlet</display-name>
            <servlet-class>
                org.apache.cxf.transport.servlet.CXFServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
        <servlet-mapping>
            <servlet-name>CXFServlet</servlet-name>
            <url-pattern>/services/*</url-pattern>
        </servlet-mapping>
    En effet, l'erreur se situait au niveau de la déclaration de mon endpoint. Apparemment, et ce n'est documenté nulle part (sauf erreur), il ne doit pas porter le nom de mon interface.

    Merci pour votre attention !

  6. #6
    Membre éclairé Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Par défaut
    Bonjour,

    j'ai vraiment besoin d'un cours pour un super extra débutant en web service pour implémenter rest ou autre api java pour exécuter des requetes xquery toutes pretes dans ma bases de données...

    Merci merci beaucoup pour votre aide... j'en ai vraiment besoin...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Créer un Web Service
    Par gstratege dans le forum Services Web
    Réponses: 3
    Dernier message: 19/10/2014, 15h13
  2. Upload fichier avec service REST AngularJS + Spring MVC
    Par the_finisher dans le forum Spring
    Réponses: 0
    Dernier message: 29/08/2014, 13h27
  3. créer un Client REST JAX-RS appelant un service web PHP
    Par paladin972 dans le forum Services Web
    Réponses: 0
    Dernier message: 16/04/2012, 17h59
  4. [CXF][SPRING] Problème d'intégration du web service
    Par Eldon3hs dans le forum Services Web
    Réponses: 1
    Dernier message: 06/10/2009, 12h35
  5. Créer un service pour Tomcat
    Par Bobybx dans le forum Administration système
    Réponses: 2
    Dernier message: 03/06/2009, 16h06

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