Saltar al contenido

Error JAX-WS en el archivo WSDL: “Error al resolver el componente ‘s: esquema'”

Por fin después de tanto luchar hemos dado con la contestación de esta preocupación que muchos de nuestros usuarios de esta web presentan. Si deseas aportar algo más no dudes en compartir tu comentario.

Solución:

Resolví esto adaptando el método de Vivek Pandey a Maven, mientras actualizaba a jaxws-maven-plugin 2.2. Lo reiteraré aquí para la posteridad:

Resumen

Coloque este archivo de personalización XJB (ver más abajo) en su directorio de archivos de enlace predeterminado y configure wsimport para enlazarlo y http://www.w3.org/2001/XMLSchema.xsd.

Personalización de XJB

El contenido del archivo XML mencionado anteriormente, xsd.xjb, que debería ir en su directorio de archivos vinculantes predeterminado, es el siguiente (el crédito es para Kohsuke):




  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

POM

Aquí está la parte relevante de mi archivo POM, con los cambios señalados:


    
    org.jvnet.jax-ws-commons
    jaxws-maven-plugin
    2.2
    
         
            
                wsimport
            
            
                
                
                    -bhttp://www.w3.org/2001/XMLSchema.xsd
                
                
                    erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
                
                http://erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
                $project.build.directory/jaxws/stale/Service.asmx.stale
                
                
                    xsd.xjb
                
            
            wsimport-generate-egtestreportengine
            generate-sources
        
    
    
        
            javax.xml
            webservices-api
            1.4
        
    
    
        $project.build.directory/generated-sources/jaxws-wsimport
        true
        true
        true
        $basedir/src/jax-ws-catalog.xml
        2.0
    

Para que la solución de Nick funcione, es posible que deba agregar estos dos argumentos jvm a su pom.xml Entonces, cuando encuentre esos errores:

org.xml.sax.SAXParseException; systemId: http://www.w3.org/2001/XMLSchema.xsd; lineNumber: 67; columnNumber: 11; DTD externa: no se pudo leer la DTD externa ‘XMLSchema.dtd’, porque el acceso ‘http’ no está permitido debido a la restricción establecida por la propiedad accessExternalDTD.

[WARNING] schema_reference: no se pudo leer el documento de esquema ‘xml.xsd’, porque el acceso ‘http’ no está permitido debido a la restricción establecida por la propiedad accessExternalSchema. línea 91 de http://www.w3.org/2001/XMLSchema.xsd

Solo agrégalos a tu pom.xml

-Djavax.xml.accessExternalDTD=all
-Djavax.xml.accessExternalSchema=all


    -Djavax.xml.accessExternalDTD=all
    -Djavax.xml.accessExternalSchema=all

Tenía el mismo problema solucionado con el siguiente comando:

wsimport -b http://www.w3.org/2001/XMLSchema.xsd -b xsd.xjb service.wsdl

donde xsd.xjb se refiere a :




  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

Tienes la opción de ayudar nuestra función añadiendo un comentario y valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *