Buscar en el Blog

Mostrando entradas con la etiqueta Client Stub. Mostrar todas las entradas
Mostrando entradas con la etiqueta Client Stub. Mostrar todas las entradas

viernes, 21 de mayo de 2010

Tarea de Ant para generar clientes de servicios web usando Apache Axis

A continuación comparto la tarea de Apache Ant para poder crear los client stubs para consumir servicios web usando Apache Axis.

La última versión de Apache Axis es la v1.4, se lo puede descargar del siguiente link: http://www.apache.org/dyn/closer.cgi/ws/axis/1_4

La tarea de Ant para crear los client stubs de un servicio web es la siguiente:

<property name="axis.home" location="${lib.home}/apache-axis-1.4"/>

    <target name="axis-generate-client-stubs" depends="init"
            description="Generate the client stubs for a web service">
        <path id="axis.path">
            <fileset dir="${axis.home}/lib">
                <include name="*.jar"/>
            </fileset>
        </path>
        <java classname="org.apache.axis.wsdl.WSDL2Java" fork="true">
            <arg value="-client"/>
            <arg value="-o"/>
            <arg value="${javaproject.home}/src-generated"/>
            <arg value="http://www.webservicex.net/CurrencyConvertor.asmx?WSDL"/>
            <arg value="-p"/>
            <arg value="com.myapplication.webservices"/>
            <classpath>
                <path refid="axis.path"/>
            </classpath>
        </java>
    </target>


En dónde:

  •  axis.home direcciona al directorio que contiene las librerías de Apache Axis
  •  -o  para configurar la ubicación en dónde se crearán las clases Java para el cliente del servicio web, en éste ejemplo: ${javaproject.home}/src-generated
  • La URL dónde se encuentra publicado el servicio web, en éste caso:  http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
  • -p para definir el paquete Java en el cuál se crearán las clases del cliente del servicio web, por ejemplo: com.myapplication.webservices

miércoles, 21 de abril de 2010

Convertir un objeto GregorianCalendar a XMLGregorianCalendar

Cuando se trabaja con servicios web en Java las fechas son manejadas a través de instancias de la clase javax.xml.datatype.XMLGregorianCalendar. Sin embargo, generalmente se trabaja con instancias de la clase java.util.GregorianCalendar para trabajar con fechas.

Al generar un client stub para un servicio web usando Apache Axis los tipos de dato fecha del WSDL se mapean a objetos del tipo XMLGregorianCalendar. Sí se dispone de un objeto GregorianCalendar con el siguiente código se puede realizar la conversión a un objeto del tipo XMLGregorianCalendar.

try {

GregorianCalendar fechaX = new GregorianCalendar();
fechaX.setTime(objetoTipoDate);
XMLGregorianCalendar fechaXML = DatatypeFactory.newInstance().newXMLGregorianCalendar(fechaX);

} catch (DatatypeConfigurationException e) {}