---
title: "Accediendo a un Servicio Web desde Java con Axis"
url: "https://victorfarina.com/blog/accediendo_a_un_servicio_web_desde_java"
author: "Víctor Fariña"
published: "2005-11-30"
updated: "2005-11-30"
language: "es"
categories: ["tecnología"]
---

# Accediendo a un Servicio Web desde Java con Axis

Problema Recientemente tuvimos la necesidad de acceder a un servicio web que nos daba la autenticacion a una cantidad de servicios de un cliente. Este tenia todo centralizado en LDAP y no se permitia el acceso directo al servidor LDAP, solo a traves de un SW que te respondia OK o KO en funcion de si la combinacion login/password era correcta o no. Lo unico que nos dieron es un wsdl que describe el Servicio Web.

Solución  
Para empezar con todo esto empezamos a buscar informacion sobre acceder a servicios web via java, y la verdad es que encontramos bastante poco, bastante menos de lo que a mi me gustaría (lo que encontré está en la zona de referencias) Para poder reproducir todo esto, vamos a hacer un ejemplo.

Implementación Como ejemplo nos vale el Servicio Web de Google al cual accederemos para que nos corriga las palabras que le introducimos. El WSDL lo tenemos aqui : [Google WSDL](http://api.google.com/GoogleSearch.wsdl) <!--more--> PASO 1: Lo que debemos hacer primero es obtener todas las librerias necesarias para el acceso a un servicio web remoto, estas son por lo menos:

- axis-ant.jar
- commons-discovery.jar
- commons-logging.jar
- jaxrpc.jar
- log4j-1.2.4.jar
- saaj.jar
- wsdl4j.jar
- axis.jar

Os las podeis bajar todas juntas de [aqui](http://www.myspotter.com/downloads/lib.zip).PASO 2: Ahora que tenemos todas las librerias, vamos a generar el proxy de la conexion al servicio web, para ello, usaremos el fantastico WSDL2Java, que viene con axis, y requiere como parametro la ruta al servicio WEB o su URL:

java -classpath "axis-ant.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar:jaxrpc. jar:log4j-1.2.8.jar:saaj.jar:wsdl4j-1.5.1.jar:axis.jar" org.apache.axis.wsdl.WSDL2Java http://api.google.com/GoogleSearch.wsdl  
  
Recordad, que si usais Windows, debeis de Cambiar de Sistema Operativo o Sustituir los ":" por ";" punto y coma. Este comando nos genera una estructura de archivos a partir de donde estemos con 6 o 7 archivos que usaremos para realizar la conexion.

PASO 3: Ahora que ya tenemos el proxy de conexion vamos a escribir un simple cliente java que lo use: package GoogleSearch;  
  
public class GoogleSearchClient {  
  
        public static void main(String\[\] args) throws Exception {  
                // Crea el servicio  
                GoogleSearchService service = new GoogleSearchServiceLocator();  
  
                // Ahora usamos el servicio para crear un proxy hacia el Service Definition Interface (SDI)  
                GoogleSearchPort google = service.getGoogleSearchPort();  
  
                // Hacer la llamada  
                String key = "KEY OBTENIDA DE GOOGLE API en www.google.com/api";  
                String query = "wickle";  
                int start = 0;  
                int maxResults = 10;  
                boolean filter = true;  
                String restrict = "";  
                boolean safeSearch = true;  
                String languageRestrict = "lang\_en";  
                String inputEncoding = "UTF-8";  
                String outputEncoding = "UTF-8";  
  
                GoogleSearchResult gsr =  
                        google.doGoogleSearch(key,query,start,maxResults,filter,restrict,safeSearch,i                                 languageRestrict,inputEncoding,outputEncoding);  
  
                ResultElement\[\] re = gsr.getResultElements();  
  
                for (int i = 0; i < re.length; i++) {  
                        System.out.println(re\[i\].getURL());  
                }  
        }  
}

PASO 4: Compilamos Todo : javac -classpath "axis-ant.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar: jaxrpc.jar:log4j-1.2.8.jar:saaj.jar:wsdl4j-1.5.1.jar:axis.jar" GoogleSearch/\*

PASO 5: Ejecutamos ahora el cliente creado : java -classpath "axis-ant.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar:  
jaxrpc.jar:log4j-1.2.8.jar:saaj.jar:wsdl4j-1.5.1.jar:axis.jar:." GoogleSearch/GoogleSearchClient  
\- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.  
http://www.wickle.com/wiki/index.php/Main\_Page  
http://www.wickle.com/wikis/index.php/Graphviz\_extension  
....

et voila ;) ... Ya tenemos creado un cliente de un Servicio Web.

REFERENCIAS [http://www.bawsug.org/archives/000008.html](http://www.bawsug.org/archives/000008.html) [http://www.myspotter.com/webservices1.shtml](http://www.myspotter.com/webservices1.shtml)
