estoy intentando utilizar la API del ministerio (http://www.facturae.es/es-ES/Descargas/DescargasDesarrollo/Paginas/APIJava2.aspx)
y me esta costando bastante.
Mi primer objetivo es a partir de los datos entrados en el objeto generar una factura XML.
Este es mi código se base casi identicamente al que da de ejemplo en la documentación de la API. Lo he probado desde una máquina linux con NetBeans como en windows 7 con Eclipse y me lanza los mismos errrores.
Código:
package FacturaElectronica; import es.mityc.facturae.*; import java.io.*; import java.util.*; import java.lang.*; public class FacturaElectronica { public static void main(String[] args) throws es.mityc.facturae.utils.MarshalException { es.mityc.facturae32.Facturae facturae32Object = new es.mityc.facturae32.Facturae(); es.mityc.facturae32.FileHeaderType cabecera32Object = new es.mityc.facturae32.FileHeaderType(); String schemaVersion="3.2"; cabecera32Object.setSchemaVersion(schemaVersion); facturae32Object.setFileHeader(cabecera32Object); es.mityc.facturae.utils.MarshallerUtil marshallerUtil32= es.mityc.facturae.utils.MarshallerUtil.getInstance(FacturaeVersion.FACTURAE_32); marshallerUtil32.marshal(facturae32Object, "resultat"); } }
Código:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/bind/marshaller/NamespacePrefixMapper at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at es.mityc.facturae.utils.MarshallerUtil.<init>(MarshallerUtil.java:140) at es.mityc.facturae.utils.MarshallerUtil.getInstanceFacturae32(MarshallerUtil.java:111) at es.mityc.facturae.utils.MarshallerUtil.getInstance(MarshallerUtil.java:74) at FacturaElectronica.FacturaElectronica.main(FacturaElectronica.java:20) Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.marshaller.NamespacePrefixMapper at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 16 more
Ya llevo algunas horas con ello, y es un poquito desesperante. No he visto otra gente por la red que utilice estas APIs más que para firmar un documento XML ya creado.
La documentación adjunta a la API es casi testimonial. Alguien ve el error o tiene algun ejemplo tipo "hello world" sobre los pasos mínimos para crear un XML con esas APIs?.
Gracias