jueves, 15 de octubre de 2009

Como cambiar el EndPoint o EPR de AXIS2

Cuando se genera con axis2 un web services, de forma dinamica.. o sea que el WS te cree el WSDL en forma dinamica, el motor de Axis2 tiene un comportamiento, que a mi me trajo algunos problemas.

Es decir, Cuando por ejemplo queremos probar el WS con el cliente de eclipse, uno agarra y pone la direccion del ws.
Ej:

http://IP_PUBLICA/RoboCupWS/services/RoboCupService?wsdl

Luego de esto el cliente de WS nos trae todos los metodos que contiene ese WS y hasta aca todo muy lindo, el problema es que el motor de axis2 genera automaticamente el WSDL y como ENDPOINT pone la ip LOCAL DE LA MAQUINA...
Con lo cual cuando queremos pedir un metodo al ws, se lo estariamos pidiendo a la ip local de esa maquina, la cual para nosotros no existe.... nosotros queriamos que le pida el metodo a la IP PUBLICA.

Bueno la forma de arreglar este problemita es configurando el ENDPOINT en el axis2.

Para hacer esto hacemos lo siguiente:

- Dentro del proyecto del WS , nos vamos a la carpeta WebContent/WEB-INF/conf

Y dentro de esta carpeta vamos a encontrar el archivo de configuracion de axis2, que se llama axis2.xml.

Dentro de este archivo vamos a buscar esto:





y como podemos ver ahi, configurando esto vamos a cambiar el ENDPOINT del ws.

ej:



200.175.45.1-->

o

fenderstratocaster.com-->


De esta manera ya tenmos configrado el ENDPOINT del ws, y no vamos a tenr ningun problema.

IMPORTANTE:

Tener en cuenta que haciendo esto, estamos harcodeando el ENDPI¿OINT, por lo cual esto ya no va a ser dinamico, y si el dia de mañana sacamos el WS de ese server y lo migramos a otro server, vamos a tener que cambiar el dns o ip del ENDPOINT para ese nuevo server.