xml jaxb eclipselink moxy

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