2010-11-09 12 views
0

Dans le fichier de ressort applicationConfig.xml, l'intégration JAX-WS nécessite des schémas spécifiques. Je récemment utiliser avec succès ces déclarations:Spring et Jax-WS: où sont les schémas xsd?

    [Je dois supprimer toutes les URL (sauf un) parce que c'est ma première question]

    Le fichier commence par les déclarations suivantes:
    <beans xmlns="http www.springframework.org/schema/beans" xmlns:xsi="http www.w3.org/2001/XMLSchema-instance" xmlns:aop="http www.springframework.org/schema/aop" xmlns:tx="http www.springframework.org/schema/tx" xmlns:context="http www.springframework.org/schema/context" xmlns:ws="http jax-ws.dev.java.net/spring/core" xmlns:wss="http jax-ws.dev.java.net/spring/servlet" xsi:schemaLocation="http www.springframework.org/schema/beans http www.springframework.org/schema/beans/spring-beans.xsd http www.springframework.org/schema/aop http www.springframework.org/schema/aop/spring-aop.xsd http www.springframework.org/schema/tx http www.springframework.org/schema/tx/spring-tx.xsd http www.springframework.org/schema/context http www.springframework.org/schema/context/spring-context.xsd http jax-ws.dev.java.net/spring/core https jax-ws.dev.java.net/spring/core.xsd http jax-ws.dev.java.net/spring/servlet https jax-ws.dev.java.net/spring/servlet.xsd">
    (...)
    <ws:service id="myService" bean="#myWS" />
    <wss:binding url="/services/myws" service="#myService" />

    Maintenant, une migration se produit pour le site Web jax-ws.dev.java.net. Ces fichiers ne sont pas trouvés et j'ai quelques erreurs sous Tomcat et Eclipse:

    org.xml.sax.SAXParseException: schema_reference.4: Impossible de lire le document de schéma « https://jax-ws.dev. java.net/spring/core.xsd ', car 1) n'a pas pu trouver le document; 2) le document n'a pas pu être lu; 3) l'élément racine du document ne l'est pas.

    Y at-il une solution ou quelque chose pour éviter cette erreur?

    Merci

    +0

    Hé, je suis confronté au même problème. Avez-vous trouvé une solution? –

    Répondre

    1

    Je suppose que vous utilisez Maven pour la construction? Essayez d'ajouter la dépendance à l'pom.xml

    <dependency> 
         <groupId>javax.xml.ws</groupId> 
         <artifactId>jaxws-api</artifactId> 
         <version>2.1-1</version> 
    </dependency> 
    

    Si vous ne l'utilisez Maven, assurez-vous que vous avez libs JAX-WS sur votre chemin de classe. http://java.net/projects/jax-ws

    +0

    Ce n'est pas un problème de compilation ... J'ai mis toutes les libs dans mon classpath. Des erreurs se produisent lorsque l'application est déployée sous Tomcat. Je pense que printemps lire applicationContext.xml et essayer de lire tous les schémas XSD. –

    +0

    Avoir compilé et ajouter un jar au classpath est deux choses différentes. cela dit, ce qui m'a aidé dans cette situation était d'ajouter une dépendance maven de ' org.jvnet.jax-ws-commons.spring', ' jaxws-spring' – Hille

    4

    Finaly I Extrait XSD de JAXWS-printemps-1.8.jar (lib pour JAXWS de travailler avec Spring). Je mets ces XSD sous le répertoire WEB-INF, juste à côté de applicationContext.xml. je modifie la déclaration de schéma dans ce fichier avec:

    http://jax-ws.dev.java.net/spring/core classpath:spring-jax-ws-core.xsd 
        http://jax-ws.dev.java.net/spring/servlet classpath:spring-jax-ws-servlet.xsd 
    

    Je l'ai vu la solution ici: Spring schemaLocation fails when there is no internet connection

    1

    Vous n'avez pas besoin d'extraire le XSD du pot JAXWS ressort. Vous devez juste vous assurer que l'URL que vous utilisez correspond à celle dans le fichier META-INF/spring.schemas dans le pot

    Ils sont définis comme suit:

    http\://jax-ws.dev.java.net/spring/core.xsd=spring-jax-ws-core.xsd 
    http\://jax-ws.dev.java.net/spring/servlet.xsd=spring-jax-ws-servlet.xsd 
    http\://jax-ws.dev.java.net/spring/local-transport.xsd=spring-jax-ws-local-transport.xsd 
    

    Pensez vous avez juste besoin de remplacer https avec http. E.g:

    <beans xmlns="http://www.springframework.org/schema/beans" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns:ws="http://jax-ws.dev.java.net/spring/core" 
         xmlns:wss="http://jax-ws.dev.java.net/spring/servlet" 
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
          http://jax-ws.dev.java.net/spring/core http://jax-ws.dev.java.net/spring/core.xsd 
          http://jax-ws.dev.java.net/spring/servlet http://jax-ws.dev.java.net/spring/servlet.xsd> 
    

    Pour plus d'informations sur spring.schemas, voir here