Ho un progetto in cui voglio lavorare con un insieme di classi generate da JAXB da un XSD. Con queste classi mi piacerebbe marshall/unmarshall da XML e JSON.jaxb.properties mancanti in fase di esecuzione quando sono stati creati con Maven
Ho capito che avrei bisogno di Moxy Eclipselink per fare quello che mi serve. Ho testato le mie lezioni e lavorato come un progetto Ant, quindi ho deciso di trasferirlo a Maven per una migliore gestione.
Tuttavia, il file jaxb.properties non sembra essere riconosciuto in fase di esecuzione.
Il mio progetto ha un artefatto Maven per gli oggetti e un altro artefatto per la logica/l'elaborazione. Mi sono tirato fuori i capelli cercando di capire dove mettere i jaxb.properties in modo che potessero essere letti.
ho cercato
oggetti Progetto
/src/main/resources/jaxb.properties
/src/main/java/[namespace]/jaxb.properties
Logic Progetto
/src/main/resources/jaxb.properties
/src/main/java/[namespace]/jaxb.properties
Tuttavia, quando cerco di ottenere il nome di classe di mia JAXBContext ho ancora:
class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl
Se io modificare le mie impostazioni gestito specificando un'opzione JVM di:
-Djavax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
ottengo:
class org.eclipse.persistence.jaxb.JAXBContext
In entrambi i progetti che ho specificato questo nel pom.xml
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
Se guardo al JAR, vedo jaxb.properties lì dentro.
Ora sono confuso.
Blaise, grazie per il link GitHub. Dopo aver esaminato attentamente la struttura della cartella, ha davvero iniziato a dare un senso. Ho inserito jaxb.properties nel pacchetto corretto e ha funzionato benissimo! –
Questo mi è stato utile, ho eseguito un refactoring e spostato le classi di modelli nella mia applicazione, ma ho dimenticato di spostare jaxb.properties. La struttura del pacchetto deve corrispondere esattamente sotto l'albero delle risorse. Il mio era fuori da un pacchetto e tutto si ruppe. Questo è un punto molto importante. – Jon
Grazie mille a tutti. Questo era anche il mio problema. Questo è il motivo per cui adoro lo stackoverflow. Quindi, molte persone fantastiche come te per aiutare! – atom88