Crear un webservice básico con PHP y Java
Short Description
Download Crear un webservice básico con PHP y Java...
Description
Crear un webservice básico con PHP y SOAP SOAP es un protocolo de intercambio para servicios web basado en XML, sobre el que puedes leer en esta entrada de la wikipedia. Para no liarnos con preámbulos, vamos con la chicha ¿cómo creamos un servicio web en PHP?. Para facilitarnos la vida empezaremos por descargar NuSOAP, un toolkit para el desarrollo de servicios web con SOAP en PHP, que nos proveerá de diversas clases para trabajar con este protocolo. Basta con descargarlo, descomprimirlo, meterlo dentro de nuestro proyecto y, cuando queramos usarlo, incluir nusoap.php como librería. Ok, con NuSOAP instalado toca crear un servidor SOAP en nuestra aplicación. Para el ejemplo crearemos un servidor, lo llamaremos producto.php, que si recibe una petición donde se le pida una lista de libros devuelva tres títulos (es un ejemplo básico, piensa que en la realiad podrías acceder a una base de datos y dar muchas más funcionalidades). 1 2 18 19 Ok, ahora necesitas un cliente, que llamaremos cliente.php. En el constructor, el cliente recibirá el url del servidor y para acceder al método que nos devuelve los libros recurriremos al método call(), al cual le pasaremos el nombre del método del servidor al que queremos acceder y los parámetros en forma de array. Además, también controlaremos que no haya errores en la comunicación. 24 25 26 27 28 Con esto ya tienes una idea múy básica del funcionamiento de un webservice SOAP construído con PHP. Pero claro, nos falta un archivo WSDL para tener un webservice decente. Aunque dicho archivo puede ser escrito a mano, NuSOAP puede generarlo por tipasándole ciertos parámetros, por lo que lo ideal sería generarlo en el servidor. Así que modifica tu producto.php para que quede tal que así: 1 2 26 27
28 29 Como ves, el cambio en es cuando llamamos a register, ya que en vez de pasarle, como antes, el método en cuestión, le añadimos también varios argumentos para generar el WSDL:
El primer array nos permite definir el argumento de entrada y su tipo de datos El segundo define la función de retorno y su tipo de datos urn:producto es la definición del namespace urn:producto#getProd es donde definimos la acción SOAP Luego viene el tipo de llamada,que puede ser rpc, como en el ejemplo, o document Tras esto definimos el valor del atribute use, que puede ser encoded o literal Finalmente viene una descripción de qué hace el método al que llamamos Ahora basta con que en el navegador accedas a producto.php?wsdl y verás el WSDL generado. Ya puedes copiarlo y añadirlo a tu directorio web (crea un archivo y llámalo, por ejemplo, libros.wsdl). Para que el cliente lo utilice debes modificar el código, y en el constructor, en vez del url le pasas el nombre del archivo, de forma que quede como en el ejemplo: $client = new nusoap_client("libros.wsdl", true); 1 Ahora sí, ya tienes montado un pequeño servicio web. El ejemplo es simplón, pero piensa en todas las funcionalidades que podrías incorporarle.
Cómo crear servicios web en JAVA– IDE NetBeans 17:13
Fabián Bermeo Pérez[MSP]
Hola a todos, bienvenidos a otro curso de desarrollo web, esta vez vamos a aprender cómo crear servicios web en java con el IDE NetbBeans. Antes de implementarlo, quiero recordarles que usamos servicios web en sistemas distribuidos donde necesitamos integrar diferentes plataformas como .NET, JAVA etc.
Abrimos nuestro NetBeans, en mi caso uso una versión 6.9.1 full que me funciona muy bien sobre windows 7 Ultimate x64
Nos dirigimos a archivo y le damos clic en nuevo proyecto
Buscamos el proyecto llamado java Web y dentro de él clic en aplicación web
A continuación le damos un nombre a nuestro proyecto, y los demás valores los dejamos por defecto
En la siguiente pantalla debemos escoger el servidor, en nuestro caso usaremos GlassFish Server 3 y la versión de java EE la dejamos como JAVA EE 6 Web
la ventana a continuación la dejamos como está. No seleccionamos ningún valor de los checkbox
Luego de configurar, veremos un entorno como el siguiente, que es código puro de HTML, y el conocidísimo “Hello World!“
Damos clic en ejecutar, para levantar los servicios seamos un poco pacientes, lleva de 2 a 3 minutos al finalizar veremos en nuestro explorador el “Hello World!”
De seguido necesitamos crear un nuevo paquete en donde se alojará el servicio web que vamos a construir damos clic derecho en fuente de paquetes, luego clic en nuevo y seleccionamos paquete de java
Obviamente le tenemos que dar un nombre, siempre usen pack_ + el nombre que le deseen asignar para llevar una jerarquía en cuanto nombres en el desarrollo de aplicaciones
ahora ubicamos a nuestro paquete, y le damos clic derecho seleccionamos nuevo y escogemos “servicio web”
le asignamos ahora un nombre a nuestro servicio web, que servirá para identificarlo dentro de netbeans
Concluido el proceso, seleccionamos modo diseñador, clic en agregar operación, le asignamos un nombre que en nuestro caso lo denominé multiplicar_dos_números con clic en agregar, inserto 3 parámetros dos de tipo int y uno de tipo string que me servirá para mostrar el resultado cambio de nombres a cada una de las variables, según nuestra necesidad
Volvemos a modo código y agregamos las sentencias que busquemos sean ejecutadas por el servicio web en mi caso estoy declarando una nueva variable para multiplicar do números que ingrese el usuario y devuelvo un texto concatenado con el resultado
para probar nuestro servicio web, buscamos la carpeta servicios web en el árbol de contenidos de la izquierda ingresamos en él y ubicamos a nuestro servicio web que creamos le damos clic derecho y probar servicio web
En el navegador veremos algo como esto, en donde debemos ingresar las variables que definimos en el servicio web solo necesitamos ingresar dos valores porque la tercera variable la usamos como retorno de la operación así que le damos los valores del número 1 y del número 2 para multiplicarlos y clic en el botón que indica la operación a realizar
lo que devolverá será el valor de las variables que ingresamos y su multiplicación o resultado que se procesó dentro del servicio web
de esta manera se manejan los servicios web, en próximas publicaciones les enseñaré como invocar este mismo servicio web desde .NET
JAVA: Crear un servicio web básico con NetBeans 7.x Una forma muy sencilla de desarrollar un servicio web en Java es haciendo uso de la plataforma de desarrollo NetBeans 7.x que nos permite además desplegarlos en un servidor web local para pruebas como es GlassFish.
Para descargarnos NetBeans iremos a https://netbeans.org/downloads/. De todas las opciones que nos indica, os recomiendo descargar el paquete Java EE o All para asegurarnos de tener instalado GlassFish. En mi caso he escogido el paquete All para curarme en salud ;-).
De la instalación voy a comentar poco, ya que simplemente hay que seguir el asistente con la técnica de “siguiente siguiente siguiente”, estando bien seguros que instalamos GlassFish.
Desarrollo del servicio web En NetBeans 7.x, para crear un servicio web deberemos crear un proyecto de aplicación web.
En el asistente se nos preguntará por el servidor que usaremos, y es aquí donde seleccionaremos el GlassFish que hemos instalado.
Una vez creado el proyecto, añadiremos un nuevo WebService desde el menú contextual New > WebService….
Se nos abrirá un asistente en el que rellenaremos el nombre de la clase y su paquete.
Y con esto ya tenemos el servicio creado. @WebService(serviceName = "WSDemo") public class WSDemo {
/** * This is a sample web service operation */ @WebMethod(operationName = "hello") public String hello(@WebParam(name = "name") String txt) { return "Hello " + txt + " !"; } }
Analizando su código, vemos que el servicio publica una función llamada hello. Sabemos que la clase es un servicio por @WebService y que es una función publicada en el WS por@WebMethod. Si queremos añadir una nueva función, simplemente tendremos que copiar la anterior y cambiar lo que queramos ;-)
Para publicar el servicio simplemente seleccionaremos deploy en el menú contextual sobre el proyecto.
Es posible que nos pida permiso para arrancar GlassFish.
En el output del IDE nos mostrará que se ha generado correctamente y que GlassFish está iniciado.
En la pestaña de GlassFish podremos ver la ruta para acceder al servicio web.
Probando el servicio web Accedemos a la URL que nos indica para ver el servicio. Para consultar su WSDL solo tenemos que añadir ?WSDL al final de la URL. Esto nos valdrá en el caso de querer probarlo con herramientas como SoapUI(http://www.soapui.org/), al que deberemos indicarle el WSDL para que genere la invocación.
Este nos generará la invocación, y simplemente pulsado el botón de run, obtendremos el resultado en el lateral derecho de la request.
Simple, ¿verdad?
Crear un simple servicio web SOAP en Java con NetBeans es re-fácil 21.12.08. Por ooscarr (ooscarr)
A través de un video tutorial (mencionado al final de este documento), aprendí a crear un simple servicio web con NetBeans. Según leí, Sun removió el soporte para el WSDK (aunque igual se sigue distribuyendo) para reemplazarlo por GlassFish. Así que ni modo. Pero estas instrucciones también funcionan con Tomcat.
Crear nuevo proyecto Lo primero es crear un nuevo proyecto, así que... 1. Creamos un Nuevo proyecto, en mi caso de tipo Aplicación Web
2. Elijo un nombre para la aplicación web. Yo le llamé Holaste.
3. En los ajustes del servidor, elijo GlassFish o Tomcat, como siempre.
4. Y Terminar
¿Código? Como toda apliación web, me aparece el típico index.jsppredeterminado en el que puedo aprovechar de describir el Servicio Web (puedo poner cualquier cosa, en realidad, porque esto no es parte del servicio web). index.jsp
Servicio web Este es el Servicio web Este servicio lo que hace es decir "Hola, [nombre]" a cambio de un parámetro [nombre] de tipo String.
Creación del Servicio Web Mmm... Bueno, en NetBeans es muy sencillo crear un Servicio Web, sólo basta seleccionar el nombre del proyecto (Holaste en mi caso) y poner Archivo Nuevo. Ahi también hay una opción llamada Web Service.
Y le damos un nombre, por ejemplo, ServicioWeb.
Aproveché de agregarlo a un paquete llamado hola.
Añadir operaciones Para añadir operaciones hay que sólo posicionarse sobre el Servicio Web y poner Add Operation...
De otra forma, Operation....
en
el
modo Design existe
el
botón Add
Ahí le pongo un nombre, puedo añadir parámetros y elegir si lo quiero de tipo String, boolean, int, etc.
ServicioWeb.java
Con eso se generará automáticamente el código esqueleto que puedo modificar para que me retorne "Hola, " + nombre;. Así: package hola; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; /** * * @author ooscarr */ @WebService() public class ServicioWeb { /** * Web service operation */ @WebMethod(operationName = "diHola") public String diHola(@WebParam(name = "nombre") String nombre) {
//TODO write your implementation code here: return "Hola, " + nombre; } }
Probémoslo Ya. Probémoslo. Para eso primero hay que armar el proyecto con el menú contextual del proyecto, opción Deploy. GENERACIÓN CORRECTA (tiempo total: 7 segundos)
Y probar el servicio web, seleccionando el Servicio web, opción Test Web Service. INFO: Dynamically creating request wrapper Class hola.jaxws.DiHola INFO: Dynamically creating response wrapper bean Class hola.jaxws.DiHolaResponse INFO: parsing WSDL... INFO: generating code... INFO: compiling code... INFO: Invoking wsimport with http://localhost:8080/Holaste/ServicioWebService?WSDL INFO: wsimport successful INFO: parsing WSDL... INFO: generating code... INFO: compiling code... INFO: Invoking wsimport with http://localhost:8080/Holaste/ServicioWebService?WSDL INFO: wsimport successful
Si todo está bien instalado, se debería abrir una ventana del navegador más o menos así.
Aquí, por ejemplo, si pongo Oscar en el formulario, se puede ver el código que entrega el servicio Web al cliente.
WSDL También es bueno hacer notar que NetBeans genera automáticamente el archivo WSDL (y su XML Schema también) para ser usado en las implementaciones de los Clientes.
Fuente Todo lo que dije lo saqué de un video hecho por un desarrollador de Sun. Lo puedes ver (en inglés) desde el siguiente link, por si te quedó alguna duda.
View more...
Comments