Consumiendo servicios web con Apache AXIS

Consumir servicios web en Java puede ser tan sencillo como el hacerlo desde .NET.
Para ello vamos a utilizar Apache AXIS

En primer lugar, creamos nuestro servicio web ASP.NET. Tendrá esta pinta:

using System;
using System.Web.Services;
using System.Web.Services.Protocols;

namespace WebService1
{
    [WebService(Namespace = "http://tempuri.org/")]
    [SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public Cotizacion ObtenerCotizacion (string code)
        {
            Cotizacion cot = new Cotizacion();
            cot.Code = code;
            cot.Value = 12.2f;
            return cot;
        }
    }

    public class Cotizacion
    {
        private string _code;
        public string Code
        {
            get { return _code; }
            set { _code = value; }
        }

        private float _value;
        public float Value
        {
            get { return _value; }
            set { _value = value; }
        }
    }
}

Como podéis ver, es un servicio muy simple, con un método ObtenerCotizacion que recibe el código de una empresa y devuelve un ficticio valor de cotización.
Vamos a ver cómo construir el proxy para utilizarlo desde Java.

AXIS trae una herramienta para generar el archivo de descripción WSDL desde un archivo Java, o el proceso contrario, crear el código Java desde un archivo WSDL.

Para ello, debemos ejecutar:

java org.apache.axis.wsdl.WSDL2Java <url del wsdl>

En nuestro caso,

java org.apache.axis.wsdl.WSDL2Java http://localhost:1871/Service1.asmx?wsdl

Esto nos genera un paquete con el namespace del servicio web, en nuestro caso org.tempuri, que contendrá varias clases:

  • Service1.java
  • Service1Locator.java
  • Service1Soap.java
  • Service1Soap12Stub.java
  • Service1SoapStub.java
  • Cotizacion.java

Una vez el proxy está creado por AXIS, todo es coser y cantar. Veamos como invocarlo:


Si ejecutamos el ejemplo, la consola mostrará:
La cotización de MSFT es 12.2

3 Responses

  1. Como eu faço para consumir um web server apache axis no VB.NET?

  2. aqui fala-se espanhol, não brasileiro

  3. He leido el articulo y me parece interesante, soy desarrollador de Visual C# y estoy incursionando en Java, sin embargo no logro instalar Axis, estoy utilizando Eclipse.
    Ojala puedas iluminarme.
    Saludos.

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

%d bloggers like this: