Usando un caso practico muy común en mi trabajo que es consumir un servicio web, pretendo demostrar de forma breve (si Java me lo permite) con un ejemplo el por que adoro programar en PHP vs porque (casi literalmente) odio programar con Java.
Pasos para consumir un servicio web SOAP con PHP:
1. Asegurarme que mi instalacion de PHP cuenta con la extension php_soap.
2. Escribir el siguiente codigo:
<?php<br /?>$client = new SoapClient("http://www.webservicex.net/globalweather.asmx?WSDL");<br />$response = $client->GetWeather(array('CityName'=>'Puebla','CountryName'=>'Mexico'));<br />echo $response->GetWeatherResult;<br /><br /><br />
3. Disfrutar
Pasos para consumir un servicio web SOAP con Java:
1. Usando Axis importar el WSDL para generar las diversas clases de java para consumir los servicios:
SET TMPCLASSPATH=%CLASSPATH%<br />SET ROOT=.lib<br />SET CLASSPATH=.<br />SET CLASSPATH=%CLASSPATH%;%ROOT%axis.jar<br />SET CLASSPATH=%CLASSPATH%;%ROOT%jaxrpc.jar<br />SET CLASSPATH=%CLASSPATH%;%ROOT%saaj.jar<br />SET CLASSPATH=%CLASSPATH%;%ROOT%commons-logging-1.0.4.jar<br />SET CLASSPATH=%CLASSPATH%;%ROOT%commons-discovery-0.2.jar<br />SET CLASSPATH=%CLASSPATH%;%ROOT%wsdl4j-1.5.1.jar<br />SET CLASSPATH=%CLASSPATH%;%ROOT%log4j-1.2.8.jar<br />java -cp %CLASSPATH% org.apache.axis.wsdl.WSDL2Java -v -o src http://www.webservicex.net/globalweather.asmx?WSDL<br />SET CLASSPATH=%TMPCLASSPATH%<br /><br />
2. Hacer proyecto Java en NetBeans (o su IDE de Java preferido) y agregar los JAR necesarios de Axis.
3. Copiar (si es que no se generaron ya en el lugar correcto) el código generado por Axis.
Escribir la siguiente clase en Java:
package weatherdemo;<br /><br />import NET.webserviceX.www.*;<br /><br />public class Main {<br /> private static GlobalWeatherSoapStub binding = null;<br /><br /> public static void main(String[] args) {<br /> String result = "";<br /> try {<br /> binding = (GlobalWeatherSoapStub) new GlobalWeatherLocator().getGlobalWeatherSoap();<br /> } catch (Exception ex1) {<br /> System.out.println(ex1.getMessage());<br /> return;<br /> }<br /><br /> try {<br /> result = binding.getWeather("Puebla", "Mexico");<br /> } catch (Exception ex2) {<br /> System.out.println(ex2.getMessage());<br /> return;<br /> }<br /><br /> System.out.println(result);<br /> return;<br /> }<br />}<br /><br />
4. Disfrutar… ?
Resultados
3 lineas de PHP contra cuantas de Java
?