2015-01-26 32 views
6

Sto lavorando su un problema correlato here, ma ho una domanda a parte. Forse fa tutto parte dello stesso problema, ma sembra diverso.Come utilizzare le estensioni JAXB sulla riga di comando xjc

A causa dei problemi che sto eseguendo XJC attraverso l'attività Ant e attraverso la facciata, sto cercando di eseguirlo con lo strumento "xjc" da riga di comando del JDK.

Come nel problema originale, sto cercando di utilizzare l ' "elemento wrapper" ed estensioni "API Fluent", quindi la mia linea di comando è la seguente:

xjc -extension -classpath "lib/jaxb-fluent-api-2.1.8.jar;lib/jaxb-xew-plugin-1.4.jar" -Xxew -summary target/xew-summary.txt -instantiate lazy -Xfluent-api schema/serviceCallResults.xsd 

Queste sono fondamentalmente gli stessi parametri I ho inviato al plugin "cxf-jaxb-plugin" Maven, che funziona da molto tempo. Purtroppo, questa riga di comando "xjc" viene a mancare con:

parametro non riconosciuto -Xxew

che cosa potrebbe essere sbagliato?

risposta

6

Questo non funziona, mi dispiace.

I plug-in XJC devono estendere la classe com.sun.tools.xjc.Plugin. Ma l'XJC incluso in JDK e disponibile come binario xjc (ad esempio xjc.exe in Windows) è riconfezionato: com.sun.tools.xjc ->com.sun.tools.internal.xjc.

Quindi nella riga di comando vaniglia xjc non si dispone della classe com.sun.tools.xjc.Plugin (che estendono i plug-in XJC) ma com.sun.tools.internal.xjc.Plugin.

Quindi CLI xjc non funziona con i plugin XJC. Gli unici plugin che funzionano ancora sono quelli che vengono riconfezionati. (Es. com.sun.tools.internal.xjc.addon.code_injector.PluginImpl.)

Se vuoi riga di comando quindi cercare di capire java -cp ... parametri, questo è l'unico modo per farlo funzionare con terze parti plugin XJC come XEW o JAXB2-Basics.

+0

Poiché non è possibile combinare le opzioni '-jar' e' -cp', la riga di comando sarà simile a 'java -cp jaxb-api-2.2.7.jar; jaxb-core-2.2.7.jar; jaxb-xjc-2.2.7.jar com.sun.tools.xjc.XJCFacade -d src xsd' –

+0

@dma_k Hai ragione. L'ho scambiato per un vaso "ombreggiato" in un altro progetto. – lexicore

Problemi correlati