- Contract-Last. Se comienza con el código Java y se genera el contrato del servicio web (WSDL) a partir de éste.
- Contract-First. Se comienza con el contrato del servicio web (WSDL) y se usa Java para implementar dicho contrato.
En el siguiente código expondré un servicio web muy simple que solicita como entrada un nombre y un apellido y devuelve de respuesta una cadena de texto. Para trabajar con el estilo de desarrollo Contract-Last, primero se debe de partir con la codificación Java, creando una interface con la firma de o los métodos a exponer en el servicio web y una o varias clases que implementen la interface como se muestra a continuación:
Interface HelloAxis
package com.blogspot.ingmmurillo.axisws; public interface HelloAxis { public String helloAxis(String firstName, String lastName); }
Clase HelloAxisImpl
package com.blogspot.ingmmurillo.axisws; public class HelloAxisImpl implements HelloAxis { public String helloAxis(String firstName, String lastName) { String greeting = "Welcome to Axis " + firstName + " " + lastName; return greeting; } }
Una vez que se tenga codificado el código Java se usará la siguiente configuración en Mule para exponer el servicio web usando Axis, es decir para que Mule genere automáticamente el contrato (WSDL).
Configuración en Mule
<service name="helloaxis"> <inbound> <axis:inbound-endpoint address="http://localhost:8282/webservices/axis" serviceNamespace="http://ingmmurillo.blogspot.com/webservices/axis" synchronous="true"> <axis:soap-method method="helloAxis"> <axis:soap-parameter parameter="firstName" type="string" mode="IN"/> <axis:soap-parameter parameter="lastName" type="string" mode="IN"/> <axis:soap-return type="string"/> </axis:soap-method> </axis:inbound-endpoint> </inbound> <component class="com.blogspot.ingmmurillo.axisws.HelloAxisImpl"/> </service>
En la siguiente captura de pantalla se muestra comó se consumiría el servicio web, las parámetros de entrada y la respuesta del mismo usando el cliente de servicios web SoapUI. Tomése en cuenta que la invocación al WSDL es de la siguiente forma: http://localhost:8282/webservices/axis/helloaxis?wsdl