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

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s