xml - No se puede hacer que EclipseLink MOXy funcione
jaxb (1)
Soy nuevo en JAXB y quiero cambiar el prefijo del espacio de nombres predeterminado usando EclipseLink MOXy. Mi paquete-info.java tiene las siguientes líneas de código:
@javax.xml.bind.annotation.XmlSchema (
namespace="http://namespace.mysite.com/",
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix="myns",
namespaceURI="http://namespace.mysite.com/")
},
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED
)
package com.core.mymodel;
Y mi archivo jaxb.properties tiene la siguiente línea:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
He agregado eclipselink.jar a CLASSPATH, los archivos package-info.java y jaxb.properties están en el mismo paquete que mis clases de modelo, sin embargo, cuando ejecuto el programa recibo el siguiente mensaje de error:
javax.xml.bind.JAXBException: Provider org.eclipse.persistence.jaxb.JAXBContextFactory not found
- with linked exception:
[java.lang.ClassNotFoundException: org.eclipse.persistence.jaxb.JAXBContextFactory]
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
He intentado esto con las versiones 2.3.0 y 2.0.2 de EclipseLink y todavía tengo el mismo mensaje de error. ¿Alguien sabe cuál podría ser el problema?
Muchas gracias de antemano
Parece que tiene su archivo jaxb.properties
correcto según el mensaje de excepción:
javax.xml.bind.JAXBException: Provider org.eclipse.persistence.jaxb.JAXBContextFactory not found
- with linked exception:
[java.lang.ClassNotFoundException: org.eclipse.persistence.jaxb.JAXBContextFactory]
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Para confirmar que org.eclipse.persistence.jaxb.JAXBContextFactory
está en su classpath, puede intentar:
JAXBContext jc = JAXBContextFactory.createContext("com.core.mymodel", null);
Para hacer una confirmación más básica, ¿puede ejecutar:
System.out.println(org.eclipse.persistence.Version.getVersion());
Para más información