SlideShare uma empresa Scribd logo
1 de 9
Servicio web SOAP en Java con NetBeans
Crear nuevo proyecto
Lo primero es crear un nuevo proyecto, así que...
1. Creamos un Nuevo proyecto de tipo Aplicación Web
2. Elegimos un nombre para la aplicación web. La llamaremos “Holate”.
3. En los ajustes del servidor, seleccionamos GlassFish, como viene siendo
habitual durante el curso.
4. Y Terminar
¿Código?
Como toda aplicación web, me aparece el típico index.jsp predeterminado en el que
puedo aprovechar de describir el Servicio Web (puedo poner cualquier cosa, en
realidad, porque esto no es parte del servicio web).
Creación del Servicio Web
En NetBeans es muy sencillo crear un Servicio Web. Basta seleccionar el nombre del
proyecto (Holate en este caso) e ir al menú Archivo>Nuevo. En el apartado de Servicios
Web seleccionaremos Servicio Web.
Como nombre de paquete hemos empleado “hola”.
Añadir operaciones
Para añadir operaciones hay que posicionarse sobre el Servicio Web y seleccionar Add
Operation...
Otra forma de añadir operaciones es ir al modo Design donde hay un botón Add
Operation....
Ponemos un nombre a la operación y podemos especificar los parámetros y su tipo.
ServicioWeb.java
Con eso se generará automáticamente el código esqueleto que puedo modificar para que
me retorne "Hola, " + nombre:
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
Para eso primero hay que desplegar el proyecto en el servidor (el menú contextual del
proyecto; opción Deploy)
GENERACIÓN CORRECTA (tiempo total: 7 segundos)
Y probamos el servicio web seleccionando el Servicio web y activando la 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 similar a esta:
Aquí, por ejemplo, si introducimos Oscar en el formulario, se puede ver el código que
entrega el servicio Web al cliente.
diHola Method invocation
Method parameter(s)
Type Value
java.lang.String Oscar
Method returned
java.lang.String : "Hola, Oscar"
SOAP Request
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:diHola xmlns:ns2="http://hola/">
<nombre>Oscar</nombre>
</ns2:diHola>
</S:Body>
</S:Envelope>
SOAP Response
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:diHolaResponse xmlns:ns2="http://hola/">
<return>Hola, Oscar</return>
</ns2:diHolaResponse>
</S:Body>
</S:Envelope>
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.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's
version is JAX-WS RI 2.1.5-hudson-$BUILD_NUMBER-. -->
<definitions targetNamespace="http://hola/" name="ServicioWebService"
xmlns:tns="http://hola/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
wssecurity-utility-1.0.xsd" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xsd:schema>
<xsd:import namespace="http://hola/"
schemaLocation="ServicioWebService_schema1.xsd"/>
</xsd:schema>
</types>
<message name="diHola">
<part name="parameters" element="tns:diHola"/>
</message>
<message name="diHolaResponse">
<part name="parameters" element="tns:diHolaResponse"/>
</message>
<portType name="ServicioWeb">
<operation name="diHola">
<input message="tns:diHola"/>
<output message="tns:diHolaResponse"/>
</operation>
</portType>
<binding name="ServicioWebPortBinding" type="tns:ServicioWeb">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="diHola">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ServicioWebService">
<port name="ServicioWebPort" binding="tns:ServicioWebPortBinding">
<soap:address location="REPLACE_WITH_ACTUAL_URL"/>
</port>
</service>
</definitions>

Mais conteúdo relacionado

Mais procurados (20)

Laboratorio packet tracer dhcp-dns-http
Laboratorio packet tracer dhcp-dns-httpLaboratorio packet tracer dhcp-dns-http
Laboratorio packet tracer dhcp-dns-http
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
Recuperacion de bd
Recuperacion de bdRecuperacion de bd
Recuperacion de bd
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Base de Datos para la Farmacia Chimú
Base de Datos para la Farmacia ChimúBase de Datos para la Farmacia Chimú
Base de Datos para la Farmacia Chimú
 
Transacciones en SQL SERVER
Transacciones en SQL SERVERTransacciones en SQL SERVER
Transacciones en SQL SERVER
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
 
Guía 03. Ejercicios. Realización de consultas SQL - José J Sánchez H
Guía 03. Ejercicios. Realización de consultas SQL - José J Sánchez HGuía 03. Ejercicios. Realización de consultas SQL - José J Sánchez H
Guía 03. Ejercicios. Realización de consultas SQL - José J Sánchez H
 
Estilos arquitectónicos
Estilos arquitectónicosEstilos arquitectónicos
Estilos arquitectónicos
 
Vistas
VistasVistas
Vistas
 
MVC
MVCMVC
MVC
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
phpMyAdmin con Xampp
phpMyAdmin con XamppphpMyAdmin con Xampp
phpMyAdmin con Xampp
 
Eclipse refactoring
Eclipse refactoringEclipse refactoring
Eclipse refactoring
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 

Destaque

TIC final por Jony G.
TIC final por Jony G.TIC final por Jony G.
TIC final por Jony G.jonywicz
 
Web Semantica - Tana BarCamp
Web Semantica - Tana BarCampWeb Semantica - Tana BarCamp
Web Semantica - Tana BarCampGiannella Ligato
 
Comunidad de Madrid
Comunidad de MadridComunidad de Madrid
Comunidad de MadridG56PC
 
Figuras retórica en la publicidad
Figuras retórica en la publicidadFiguras retórica en la publicidad
Figuras retórica en la publicidadRodrigo Cisternas
 
Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...
Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...
Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ..... ..
 
Contribución de la planeación al proceso de formación de investigadores en in...
Contribución de la planeación al proceso de formación de investigadores en in...Contribución de la planeación al proceso de formación de investigadores en in...
Contribución de la planeación al proceso de formación de investigadores en in...Academia de Ingeniería de México
 
Hábeas corpus
Hábeas corpusHábeas corpus
Hábeas corpusiei192lucy
 
Amag guía de actuación del juez en el ncpp
Amag   guía de actuación del juez en el ncppAmag   guía de actuación del juez en el ncpp
Amag guía de actuación del juez en el ncppHenry Zevallos
 
Iniciativa Anticorrupción
Iniciativa Anticorrupción Iniciativa Anticorrupción
Iniciativa Anticorrupción AMLO-MORENA
 
Manual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidosManual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidosClaudio
 
Mello anthony despierta charlas sobre la espiritualidad [doc]
Mello anthony   despierta charlas sobre la espiritualidad [doc]Mello anthony   despierta charlas sobre la espiritualidad [doc]
Mello anthony despierta charlas sobre la espiritualidad [doc]Mario Paternina
 
Magazine Het Ondernemersbelang de Baronie 0212
Magazine Het Ondernemersbelang de Baronie 0212Magazine Het Ondernemersbelang de Baronie 0212
Magazine Het Ondernemersbelang de Baronie 0212HetOndernemersBelang
 

Destaque (20)

Web services
Web servicesWeb services
Web services
 
TIC final por Jony G.
TIC final por Jony G.TIC final por Jony G.
TIC final por Jony G.
 
Web Semantica - Tana BarCamp
Web Semantica - Tana BarCampWeb Semantica - Tana BarCamp
Web Semantica - Tana BarCamp
 
Comunidad de Madrid
Comunidad de MadridComunidad de Madrid
Comunidad de Madrid
 
Curso desarrollo en android
Curso desarrollo en androidCurso desarrollo en android
Curso desarrollo en android
 
Linq
LinqLinq
Linq
 
Figuras retórica en la publicidad
Figuras retórica en la publicidadFiguras retórica en la publicidad
Figuras retórica en la publicidad
 
Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...
Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...
Normatividad trabajo en alturas resolucion 1409 de 2012 y resolucion 1903 de ...
 
Contribución de la planeación al proceso de formación de investigadores en in...
Contribución de la planeación al proceso de formación de investigadores en in...Contribución de la planeación al proceso de formación de investigadores en in...
Contribución de la planeación al proceso de formación de investigadores en in...
 
Hábeas corpus
Hábeas corpusHábeas corpus
Hábeas corpus
 
Amag guía de actuación del juez en el ncpp
Amag   guía de actuación del juez en el ncppAmag   guía de actuación del juez en el ncpp
Amag guía de actuación del juez en el ncpp
 
Iniciativa Anticorrupción
Iniciativa Anticorrupción Iniciativa Anticorrupción
Iniciativa Anticorrupción
 
Pensamiento Critico
Pensamiento CriticoPensamiento Critico
Pensamiento Critico
 
Alas en la oscuridad --caryangel y rous
Alas en la oscuridad --caryangel y rousAlas en la oscuridad --caryangel y rous
Alas en la oscuridad --caryangel y rous
 
Libro el pequeño vampiro
Libro   el pequeño vampiroLibro   el pequeño vampiro
Libro el pequeño vampiro
 
Manual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidosManual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidos
 
Espanol 6to 2014 2015
Espanol 6to 2014 2015Espanol 6to 2014 2015
Espanol 6to 2014 2015
 
Mello anthony despierta charlas sobre la espiritualidad [doc]
Mello anthony   despierta charlas sobre la espiritualidad [doc]Mello anthony   despierta charlas sobre la espiritualidad [doc]
Mello anthony despierta charlas sobre la espiritualidad [doc]
 
Magazine Het Ondernemersbelang de Baronie 0212
Magazine Het Ondernemersbelang de Baronie 0212Magazine Het Ondernemersbelang de Baronie 0212
Magazine Het Ondernemersbelang de Baronie 0212
 
Pasivo A Corto Y Largo Plazo
Pasivo A Corto Y Largo PlazoPasivo A Corto Y Largo Plazo
Pasivo A Corto Y Largo Plazo
 

Semelhante a Servicio SOAP Java NetBeans

Manual de creación y uso de Web Service SOAP
Manual de creación y uso de Web Service SOAPManual de creación y uso de Web Service SOAP
Manual de creación y uso de Web Service SOAPHéctor Garduño Real
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)javier_ot99
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, javaFaby Marcos Solis
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webAnfap
 
Configurando Ambiente de Desarrollo WEB en Eclipse Neón para Desarrolladores
Configurando Ambiente de Desarrollo WEB en Eclipse Neón para DesarrolladoresConfigurando Ambiente de Desarrollo WEB en Eclipse Neón para Desarrolladores
Configurando Ambiente de Desarrollo WEB en Eclipse Neón para DesarrolladoresIvan Luis Jimenez
 
GUIA DE LABORATORIO PHONE GAP JQUERY MOBILE CARGADO DE_DATOS_DE_REGISTROS...
GUIA DE  LABORATORIO  PHONE GAP JQUERY  MOBILE  CARGADO DE_DATOS_DE_REGISTROS...GUIA DE  LABORATORIO  PHONE GAP JQUERY  MOBILE  CARGADO DE_DATOS_DE_REGISTROS...
GUIA DE LABORATORIO PHONE GAP JQUERY MOBILE CARGADO DE_DATOS_DE_REGISTROS...Ivan Petrlik
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcatjubacalo
 
Java Primeros Pasos Revista- Edición 2
Java Primeros Pasos Revista- Edición 2Java Primeros Pasos Revista- Edición 2
Java Primeros Pasos Revista- Edición 2guest39ff1b
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2Steven Gomez
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesAnder Martinez
 
Instalacion de java y sus herramientas
Instalacion de java y sus herramientasInstalacion de java y sus herramientas
Instalacion de java y sus herramientasJuan Diaz Calixtro
 
primefaces cortesia del portal de java
primefaces cortesia del portal de javaprimefaces cortesia del portal de java
primefaces cortesia del portal de javaSalvador Olivares
 

Semelhante a Servicio SOAP Java NetBeans (20)

Servicios web soap java
Servicios web soap javaServicios web soap java
Servicios web soap java
 
Servicios web
Servicios webServicios web
Servicios web
 
Manual de creación y uso de Web Service SOAP
Manual de creación y uso de Web Service SOAPManual de creación y uso de Web Service SOAP
Manual de creación y uso de Web Service SOAP
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, java
 
S7-DS2.pptx
S7-DS2.pptxS7-DS2.pptx
S7-DS2.pptx
 
Java servlets
Java servletsJava servlets
Java servlets
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones web
 
Mono Y Iis
Mono Y IisMono Y Iis
Mono Y Iis
 
Servidores web
Servidores webServidores web
Servidores web
 
Servidores web
Servidores webServidores web
Servidores web
 
Configurando Ambiente de Desarrollo WEB en Eclipse Neón para Desarrolladores
Configurando Ambiente de Desarrollo WEB en Eclipse Neón para DesarrolladoresConfigurando Ambiente de Desarrollo WEB en Eclipse Neón para Desarrolladores
Configurando Ambiente de Desarrollo WEB en Eclipse Neón para Desarrolladores
 
GUIA DE LABORATORIO PHONE GAP JQUERY MOBILE CARGADO DE_DATOS_DE_REGISTROS...
GUIA DE  LABORATORIO  PHONE GAP JQUERY  MOBILE  CARGADO DE_DATOS_DE_REGISTROS...GUIA DE  LABORATORIO  PHONE GAP JQUERY  MOBILE  CARGADO DE_DATOS_DE_REGISTROS...
GUIA DE LABORATORIO PHONE GAP JQUERY MOBILE CARGADO DE_DATOS_DE_REGISTROS...
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Java Primeros Pasos Revista- Edición 2
Java Primeros Pasos Revista- Edición 2Java Primeros Pasos Revista- Edición 2
Java Primeros Pasos Revista- Edición 2
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Web API ASP. NET XAMARIN - Luis Fernando Aguas
Web API ASP. NET XAMARIN - Luis Fernando AguasWeb API ASP. NET XAMARIN - Luis Fernando Aguas
Web API ASP. NET XAMARIN - Luis Fernando Aguas
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
Instalacion de java y sus herramientas
Instalacion de java y sus herramientasInstalacion de java y sus herramientas
Instalacion de java y sus herramientas
 
primefaces cortesia del portal de java
primefaces cortesia del portal de javaprimefaces cortesia del portal de java
primefaces cortesia del portal de java
 

Mais de Salvador Fernández Fernández

Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónSalvador Fernández Fernández
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John DaniSalvador Fernández Fernández
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John DaniSalvador Fernández Fernández
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNSalvador Fernández Fernández
 

Mais de Salvador Fernández Fernández (20)

Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Práctica nominas
Práctica nominasPráctica nominas
Práctica nominas
 
Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra función
 
Ejemplo usopunteros
Ejemplo usopunterosEjemplo usopunteros
Ejemplo usopunteros
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 
Ejercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectoresEjercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectores
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Introducción a Enterprise Java Beans
Introducción a Enterprise Java BeansIntroducción a Enterprise Java Beans
Introducción a Enterprise Java Beans
 
Colorear fotografias en blanco y negro
Colorear fotografias en blanco y negroColorear fotografias en blanco y negro
Colorear fotografias en blanco y negro
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
 
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
10 mentiras con las que siempre engañan a los diseñadores gráficos por John Dani
 
Wallpaper natural
Wallpaper naturalWallpaper natural
Wallpaper natural
 
SQL
SQLSQL
SQL
 
Cableado Estructurado de Red
Cableado Estructurado de RedCableado Estructurado de Red
Cableado Estructurado de Red
 
Redes De Computadores UOC
Redes De Computadores UOCRedes De Computadores UOC
Redes De Computadores UOC
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
 
PlanificacióN Temporal Esquema Voraz Tecnoacademy
PlanificacióN Temporal Esquema Voraz TecnoacademyPlanificacióN Temporal Esquema Voraz Tecnoacademy
PlanificacióN Temporal Esquema Voraz Tecnoacademy
 

Servicio SOAP Java NetBeans

  • 1. Servicio web SOAP en Java con NetBeans Crear nuevo proyecto Lo primero es crear un nuevo proyecto, así que... 1. Creamos un Nuevo proyecto de tipo Aplicación Web 2. Elegimos un nombre para la aplicación web. La llamaremos “Holate”.
  • 2. 3. En los ajustes del servidor, seleccionamos GlassFish, como viene siendo habitual durante el curso. 4. Y Terminar ¿Código? Como toda aplicación web, me aparece el típico index.jsp predeterminado en el que puedo aprovechar de describir el Servicio Web (puedo poner cualquier cosa, en realidad, porque esto no es parte del servicio web).
  • 3. Creación del Servicio Web En NetBeans es muy sencillo crear un Servicio Web. Basta seleccionar el nombre del proyecto (Holate en este caso) e ir al menú Archivo>Nuevo. En el apartado de Servicios Web seleccionaremos Servicio Web. Como nombre de paquete hemos empleado “hola”.
  • 4. Añadir operaciones Para añadir operaciones hay que posicionarse sobre el Servicio Web y seleccionar Add Operation... Otra forma de añadir operaciones es ir al modo Design donde hay un botón Add Operation.... Ponemos un nombre a la operación y podemos especificar los parámetros y su tipo.
  • 5. ServicioWeb.java Con eso se generará automáticamente el código esqueleto que puedo modificar para que me retorne "Hola, " + nombre: 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:
  • 6. return "Hola, " + nombre; } } Probémoslo Para eso primero hay que desplegar el proyecto en el servidor (el menú contextual del proyecto; opción Deploy) GENERACIÓN CORRECTA (tiempo total: 7 segundos) Y probamos el servicio web seleccionando el Servicio web y activando la 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 similar a esta:
  • 7. Aquí, por ejemplo, si introducimos Oscar en el formulario, se puede ver el código que entrega el servicio Web al cliente. diHola Method invocation Method parameter(s) Type Value java.lang.String Oscar Method returned java.lang.String : "Hola, Oscar" SOAP Request <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header/>
  • 8. <S:Body> <ns2:diHola xmlns:ns2="http://hola/"> <nombre>Oscar</nombre> </ns2:diHola> </S:Body> </S:Envelope> SOAP Response <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:diHolaResponse xmlns:ns2="http://hola/"> <return>Hola, Oscar</return> </ns2:diHolaResponse> </S:Body> </S:Envelope> 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. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.5-hudson-$BUILD_NUMBER-. --> <definitions targetNamespace="http://hola/" name="ServicioWebService" xmlns:tns="http://hola/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- wssecurity-utility-1.0.xsd" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xsd:schema> <xsd:import namespace="http://hola/" schemaLocation="ServicioWebService_schema1.xsd"/> </xsd:schema> </types> <message name="diHola"> <part name="parameters" element="tns:diHola"/> </message> <message name="diHolaResponse"> <part name="parameters" element="tns:diHolaResponse"/> </message> <portType name="ServicioWeb"> <operation name="diHola"> <input message="tns:diHola"/> <output message="tns:diHolaResponse"/> </operation> </portType> <binding name="ServicioWebPortBinding" type="tns:ServicioWeb">
  • 9. <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="diHola"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="ServicioWebService"> <port name="ServicioWebPort" binding="tns:ServicioWebPortBinding"> <soap:address location="REPLACE_WITH_ACTUAL_URL"/> </port> </service> </definitions>