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 WS 1.5] Pb exposition service avec plusieurs xsd (xs:include)


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut [Spring WS 1.5] Pb exposition service avec plusieurs xsd (xs:include)
    Bonjour,

    j'essaie sans succès à exposer un service via springws.

    Le problème : le fichier de mon service (service.xsd) exposé par springws fait référence à un autre <xs:include schemaLocation="secondaire.xsd"/>.

    Lorsque je teste mon service avec SOAPUI, j'ai la log d'erreur suivante :
    11:27:30,982 DEBUG [WsdlLoader] Getting wsdl component from [http://localhost:8080/APPLI/service.wsdl]
    11:27:32,029 INFO [HttpClientSupport$Helper] Initializing SSL
    11:27:32,123 DEBUG [WsdlLoader] Getting wsdl component from [http://localhost:8080/APPLI/secondaire.xsd]
    11:27:32,123 ERROR [WsdlLoader] Failed to load url [http://localhost:8080/APPLI/cylande.xsd]
    11:27:32,123 ERROR [WsdlContext] Loading of definition failed for [http://localhost:8080/APPLI/service.wsdl]; org.apache.xmlbeans.XmlException: error: </body> does not close tag <HR>.
    11:27:32,123 ERROR [SoapUI] An error occured [error: </body> does not close tag<HR>.], see error log for details
    11:27:32,139 ERROR [WsdlProject] Error importing wsdl: org.apache.xmlbeans.XmlException: error: </body> does not close tag <HR>.
    11:27:32,139 ERROR [SoapUI] An error occured [error: </body> does not close tag<HR>.], see error log for details
    11:27:32,139 ERROR [SoapUI] An error occured [Error importing wsdl], see error log for details
    mon fichier spring-ws:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	<bean id="service" class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition">
    		<property name="builder">
    			<bean class="org.springframework.ws.wsdl.wsdl11.builder.XsdBasedSoap11Wsdl4jDefinitionBuilder">
    				<property name="schema" value="/WEB-INF/classes/com/../service.xsd" /> 
    				<property name="portTypeName" value="Pays" />
    				<property name="targetNamespace" value="http://www.cylande.com" />
    				<property name="followIncludeImport" value="true" />
    				<property name="locationUri"  value="http://localhost:8080/APPLI/service" />
    			</bean>
    		</property>
    	</bean>
    le fichier xsd du service :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:cylande="http://www.service.com" 
    targetNamespace="http://www.service.com" 
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified">
    
    	<xs:include schemaLocation="secondaire.xsd"/>
    	<!-- définition de la demande -->
    	<xs:complexType name="serviceRequest">
    		<xs:sequence>
    			<!-- action a effectuee -->
    			<xs:element name="operation" type="service:operationType"/>
    		</xs:sequence>
    	</xs:complexType>
    	<!-- définition de la réponse -->
    	<xs:complexType name="serviceResponse">
    		<xs:sequence>
    			<xs:choice>
    				<xs:element name="liste" type="service:objetCMO" minOccurs="0" maxOccurs="unbounded"/>
    			</xs:choice>
    		</xs:sequence>
    	</xs:complexType>
    	<xs:element name="serviceRequest" type="service:serviceRequest"/>
    	<xs:element name="serviceResponse" type="service:serviceResponse"/>
    </xs:schema>
    Lorsque je teste avec SOAPUI, il cherche le fichier xsd sur http://localhost:8080/... Il devrait chercher le fichier wsdl.

    C'est un problème connu qui semble être corrigé dans la version 1.0.x, mais j'utilise la version 1.5.3
    Peut-être un problème dans l'écriture des fichiers ?

    Merci pour vos idées.

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Je n'ai encore jamais testé jusqu'ici mais regarde ceci :

    http://static.springframework.org/sp...ollection.html


    Et ta config change :

    Code xml : 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
    <bean id="service" class="org.springframework.ws.wsdl.wsdl11.DynamicWsdl11Definition">
    <property name="builder">
    <bean class="org.springframework.ws.wsdl.wsdl11.builder.XsdBasedSoap11Wsdl4jDefinitionBuilder">
    <property name="schemaCollection" ref="xsdCollection" />
    <property name="portTypeName" value="Pays" />
    <property name="targetNamespace" value="http://www.cylande.com" />
    <property name="followIncludeImport" value="true" />
    <property name="locationUri" value="http://localhost:8080/APPLI/service" />
    </bean>
    </property>
    </bean> 
    <bean id="xsdCollection" class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
        <description>
            This bean wrap the messages.xsd (which imports types.xsd), and inlines them as a one.
        </description>
        <property name="xsds">
            <list>
                <value>/WEB-INF/xsds/service.xsd</value>
                <value>/WEB-INF/xsds/secondaire.xsd</value>
            </list>
        </property>
        <property name="inline" value="true"/>
    </bean>
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut
    Avec cette nouvelle configuration

    service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <bean id="pays" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
        <property name="schemaCollection" ref="schemaCollectionPays" />
        <property name="locationUri"  value="http://localhost:8080/APPLI/pays" />
    </bean>
    collection de xsd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <bean id="schemaCollectionPays" class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
        <property name="xsds">
            <list>
                <value>/WEB-INF/classes/com/.../crudPays.xsd</value>
                <value>/WEB-INF/classes/com/.../identite.xsd</value>
            </list>
        </property>
        <property name="inline" value="true"/>
    </bean>
    j'ai la log suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pays' defined in ServletContext resource [/WEB-INF/spring-ws-servlet.xml]: Cannot resolve reference to bean 'schemaCollectionPays' while setting bean property 'schemaCollection'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'schemaCollectionPays' defined in ServletContext resource [/WEB-INF/spring-ws-servlet.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: java.lang.RuntimeException: org.apache.ws.commons.schema.XmlSchemaException
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
    une idée ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Bonjour tout le monde,

    Je remonte ce poste car je rencontre des problèmes similaires avec les Collection de schémas.

    Context:
    Spring 2.5.6

    Exposition du wsdl:
    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
     
    <!-- Exposition du WSDL REMUS --> 
        <bean id="ihd-Remus"
        	class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
        	<property name="schemaCollection" ref="xsdCollection" />
        	<property name="portTypeName" value="WSIHDPortType" />
        	<property name="locationUri" value="/services/" />
        </bean>
     
        <bean id="xsdCollection" class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
        <property name="xsds">
            <list>
                <value>classpath:wsdl/ConsulterfriendsIn.xsd</value>
                <value>classpath:wsdl/ConsulterfriendsOut.xsd</value>
            </list>
        </property>
        <property name="inline" value="true"/>
    </bean>
    Lors de la compilation tout se passe bien, mais en test unitaire j'ai l'erreur suivante qui remonte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ihd-Remus' defined in file [p:\Document\workspace\IHD-JAR-
    MiddleOffice\src\main\resources\endpoints.xml]: Cannot resolve reference to bean 'xsdCollection' while setting bean property 'schemaCollection'; 
    nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xsdCollection' defined in file 
    [p:\Document\workspace\IHD-JAR-MiddleOffice\src\main\resources\endpoints.xml]: Instantiation of bean failed; nested exception is java.lang.
    NoClassDefFoundError: org/apache/ws/commons/schema/resolver/URIResolver
    Auriez vous une idée?

    Merci d'avance,

    Cordialement

    Rtitoun

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Hop j'ai trouvé ma solution...bien stupide en plus

    je n'avais pas la dépendance dans mon POM...ca m'apprendra...

Discussions similaires

  1. [JAXB] Problème de binding avec plusieurs XSD
    Par virginie_ dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 28/01/2015, 15h45
  2. Comment binder un service avec plusieurs activités ?
    Par Spredzy dans le forum Android
    Réponses: 5
    Dernier message: 18/10/2010, 15h47
  3. Web Service avec Spring WS
    Par mnoussa dans le forum Services Web
    Réponses: 0
    Dernier message: 11/02/2009, 09h48
  4. [XSD] Valider un document XML avec plusieurs XSD
    Par Cbast dans le forum Valider
    Réponses: 1
    Dernier message: 11/02/2008, 08h57
  5. Réponses: 5
    Dernier message: 12/05/2006, 22h02

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