Saltar al contenido

Genere clases con jaxb2-maven-plugin desde WSDL

Orlando, parte de este equipo de trabajo, nos ha hecho el favor de escribir esta crónica porque controla a la perfección el tema.

Solución:

Al examinar la salida de depuración de Maven de los argumentos que se pasan al JAXB XJC (y un poco de prueba y error), descubrí que necesitaba proporcionar 2 parámetros de configuración más al complemento.

Esto detiene el escaneo del complemento en busca de archivos XSD y solo usa el .wsdl como la fuente. Los archivos XSD se incluyen en el WSDL como directivas, por ejemplo, que se resuelven localmente, lo que da como resultado que todos los tipos de WSDL y XSD se generen como clases Java.

La sección de configuración que funcionó para mí es:


    com.x.y.model
    true
    false
    service.wsdl

Sin el false Errores de Maven con:

org.apache.maven.lifecycle.LifecycleExecutionException: no se pudo ejecutar el objetivo org.codehaus.mojo:jaxb2-maven-plugin:1.5:xjc (predeterminado-cli) en el proyecto foo: no se pudo procesar el esquema: /c:/projects/foo /src/main/xsd/service.wsdl

Si también está generando wsdl y xsd, intente poner una configuración de ejecución diferente: es posible que no tenga la misma schemaDirectory o el complemento no se ejecutará correctamente en la segunda ejecución, porque almacena en caché las ejecuciones en función de esta variable. Aconsejo hacerlo como

        
            org.codehaus.mojo
            jaxb2-maven-plugin
            1.6
            
                
                    generate-sri-facturas
                    generate-sources
                    
                        xjc 
                     
                     
                        target/generated-sources/sri
                        $commonsource.packageName 
                        src/main/resources/schema/xsd
                        factura_v1.1.0.xsd
                     
                 
                
                    generate-sri-autorizacion-comprobantes
                    generate-sources
                    
                        xjc 
                     
                     
                        target/generated-sources/sri/autorizacion
                        $commonsource.packageName.autorizacion
                        true
                        false
                        src/main/resources/schema/wsdl
                        AutorizacionComprobantes.wsdl
                     
                 
             
         

creé un xsd y un wsdl carpeta para separar configuraciones.

Puede usar el siguiente código en la configuración:

              
                    
                    com.example.demo.wsdl
                    
                    true
                    
                    false
                    
                    horarios.wsdl
                    
                    $project.basedir/src/main/resources
                    
                    $project.basedir/src/main/java
                    
                    false
                

Eres capaz de añadir valor a nuestra información colaborando tu experiencia en las acotaciones.

¡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 *