Axis2: codegen Ant task; perchè no ?

Sempre piccola nota per chi genera web services a partire da file wsdl.

Fino ad ora avevo suggerito di usare il wizard di Axis2 su Eclipse perchè più completo di quello di Netbeans. Ebbene si usarlo alla fine è comodo ma non mi accontento soprattutto quando il wizard lascia qualche parametro implicito come la cartella resources.

Vi spiego meglio: se generate il codice dal wizard e, tra l’altro usate xmlbeans, vi ritrovete la cartella resources come root nel progetto java. In questa cartella ci sono il file wsdl ricopiato, il file services.xml e una cartella usata da Xmlbeans per gli schema generati. Fatto sta che se rilanciate il wizard per un altro web services tale cartella viene sovrascritta, in particolare il file services.xml viene sovrascritto.

Questo accade perchè l’output di default va nella root del progetto fatta eccezione per la cartella src in cui ci vanno le classi generate. Per impedire questo dovete sapere che il comando del codegen prende il parametro -R dove si puo’ indicare un path alternativo per la cartella resources.

A questo punto siccome mi piace automatizzare le cose (pigrizia da programmatore) mi sono chiesto se ne vale la pena usare il comando Ant relativo che permette di impostare tutte le opzioni.

A mia sorpresa scopro che il path che va specificato per il tag targetResourcesFolderLocation deve essere relativo al path specificato nel tag output.

Cmq era giusto per ricordarvi che è comodo poterlo usare basta importare alcuni package come specificato nella pagina:

http://ws.apache.org/axis2/tools/1_4_1/CodegenToolReference.html

Leave a comment