Ing. Pablo Almeida Haro Msc.

SOAP

 

 

CREACION DEL SERVIDOR

*Crear un proyecto web: file/new proyect/web application

*Ingresar el nombre del proyecto y ubicación

*Ingresar servidor, versión jee, ruta de inicio

*No seleccionar ningún framework

*Creación del servicio web: click derecho sobre el proyecto/new/web service

*En la ficha source editar el código como sigue a continuación:

package pkg_servicio_web;

 

import javax.jws.WebService;

import javax.jws.WebMethod;

import javax.jws.WebParam;

import javax.jws.WebService;

import java.util.List;

import javax.faces.bean.SessionScoped;

import javax.faces.bean.ManagedBean;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

import javax.persistence.Query;

 

@WebService()

public class servicio_web_servidor

{

    EntityManagerFactory factory=Persistence.createEntityManagerFactory("prj_soap_servidorPU");

    EntityManager em1=factory.createEntityManager();

    @WebMethod(operationName = "insertar")

    public int insertar(@WebParam(name = "as_codigo")

    String as_codigo, @WebParam(name = "as_nombre")

    String as_nombre)

    {

       String sql ="insert into cliente (codigo,nombre) values ('"+as_codigo+"'"+","+"'"+as_nombre+"')";

       em1.getTransaction().begin();

       Query qe=em1.createNativeQuery(sql);

       try

       {

           qe.executeUpdate();

           em1.getTransaction().commit();

           return 1;

        }

       catch (Exception ex)

       {    em1.getTransaction().rollback();

            return -1;

       }

    }

    @WebMethod(operationName = "eliminar")

    public int eliminar(@WebParam(name = "as_codigo") String as_codigo)

    {

       String sql ="delete from  cliente where codigo='"+as_codigo+"'";

       em1.getTransaction().begin();

       Query qe=em1.createNativeQuery(sql);

 

       int li_filas= qe.executeUpdate();

       if (li_filas>=1)

       {

           em1.getTransaction().commit();

           return 1;

       }

        else

       {

           em1.getTransaction().rollback();

           return 0;

       }

    }

    @WebMethod(operationName = "modificar")

    public int modificar(@WebParam(name = "as_codigo") String as_codigo,@WebParam(name = "as_nombre") String as_nombre)

    {

       String sql ="update cliente set nombre='"+as_nombre+"' where codigo='"+as_codigo+"'";

       em1.getTransaction().begin();

       Query qe=em1.createNativeQuery(sql);

 

       int li_filas=qe.executeUpdate();

       if (li_filas>=1)

       {

           em1.getTransaction().commit();

          return 1;

        }

        else

        {

            em1.getTransaction().rollback();

            return 0;

         }

    }

    public String buscar(@WebParam(name = "as_codigo") String as_codigo )

    {

       String sql ="select * from cliente where codigo="+"'"+as_codigo+"'";

       Query qe=em1.createNativeQuery(sql);

       List l1=qe.getResultList();

       if (l1.size()>=1)

        {

            Object [] ar_objeto=(Object [])(l1.get(0));

            String ls_nombre=ar_objeto[1].toString();

            return ls_nombre;

          

        }

        else

        {

            return null;

        }

 

    }

}

*Creación de la unidad de persistencia: click derecho sobre el proyecto/new/persistence unit

 

*Configurar la ruta de inicio: click derecho sobre el proyecto/propiedades/run. Modificar relative url con el nombre del sevicio web mas Service?tester

*Probar el servicio web: ir al browser y colocar en la línea de comandos

http://localhost:8080/prj_soap_servidor/servicio_web_servidorService?tester

 

SOAP – CREACION DEL CLIENTE JSF

*Crear un proyecto: file/new/ web application

*Seleccionar el servidor, versión de jee y ruta de inicio

*Seleccionar el framework JSF

*Creación del cliente de web services: Click derecho sobre el proyecto/new webservice client

*Colocar click en browse

*Se creó automáticamente la zona web service references dentro del árbol

*En la página index.xhtml colocar el código que sigue a continuación:

<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

                xmlns:f="http://java.sun.com/jsf/core"

                xmlns:h="http://java.sun.com/jsf/html"

 

       >

    <h:head>

        <title>ICEfaces 2</title>

        <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/>

    </h:head>

    <h:body>

        <div id="header">

           <!--

           <ui:include src="/header.xhtml" >

                          <ui:param name="param_name" value="param_value" />

           </ui:include>

           -->

        </div>

         <div id="content">

             <h:form id="form">

                <h:outputText value="CLIENTE"/>

                <br></br><br></br>

                <h:outputText value="Código:"/>

                <h:inputText id="codigo" value="#{cls_cliente_soap.codigo}" />

                <br></br>

                <h:outputText value="Nombre:"/>

                <h:inputText id="nombre" value="#{cls_cliente_soap.nombre}"/>

                <br></br><br></br>

                <h:commandButton id="insertar" value="Insertar" action="#{cls_cliente_soap.insertar}">  </h:commandButton>

                <h:commandButton id="eliminar" value="Eliminar" action="#{cls_cliente_soap.eliminar}" > </h:commandButton>

                <h:commandButton id="modificar" value="Modificar" action="#{cls_cliente_soap.modificar}"> </h:commandButton>

                <h:commandButton id="buscar" value="Buscar" action="#{cls_cliente_soap.buscar}"> </h:commandButton>

                <br></br><br></br>

                <h:outputText value="#{cls_cliente_soap.mensaje}"/>

               

           </h:form>

 

         </div>

    </h:body>

</html>

*Crear el backing bean: click derecho sobre source packages new/java class

Colocar el código que sigue a continuación:

package pkg_cliente_soap;

 

import java.util.List;

import javax.faces.bean.SessionScoped;

import javax.faces.bean.ManagedBean;

import javax.xml.ws.WebServiceRef;

import pkg_servicio_web.ServicioWebServidor;

import pkg_servicio_web.ServicioWebServidorService;

 

@ManagedBean()

@SessionScoped

public class cls_cliente_soap

{

    private ServicioWebServidorService service=new ServicioWebServidorService();

    ServicioWebServidor port= service.getServicioWebServidorPort();

    public String codigo="";

    public String nombre="";

    public String mensaje="";

 

    public cls_cliente_soap ()

    {

    }

    public String getcodigo() {

        return codigo;

    }

    public void setcodigo(String as_codigo) {

        this.codigo = as_codigo;

    }

    public String getnombre() {

        return nombre;

    }

    public void setnombre(String as_nombre) {

        this.nombre = as_nombre;

    }

    public String getmensaje() {

        return mensaje;

    }

    public void setmensaje(String as_mensaje) {

        this.mensaje = as_mensaje;

    }

    public void insertar()

    { 

       int resultado;

       try

       {   resultado=port.insertar(codigo, nombre);

           if (resultado==1)

           {

             mensaje="Se insertó satisfactoriamente";           

           }

           else

           {

             mensaje="No se pudo insertar";           

           }

 

        }

       catch (Exception ex)

       {   

            mensaje="No se pudo insertar";

       }

 

    }

    public void eliminar()

    {

       int resultado;

       try

       {   resultado=port.eliminar(codigo);

           if (resultado==1)

           {

             mensaje="Se eliminó satisfactoriamente";           

           }

           else

           {

             mensaje="No se pudo eliminar";           

           }

 

        }

       catch (Exception ex)

       {   

            mensaje="No se pudo eliminar";

       }

 

 

    }

    public void modificar()

    {

       int resultado;

       try

       {   resultado=port.modificar(codigo, nombre);

           if (resultado==1)

           {

             mensaje="Se modificó satisfactoriamente";           

           }

           else

           {

             mensaje="No se pudo modificar";           

           }

 

        }

       catch (Exception ex)

       {   

            mensaje="No se pudo modificar";

       }

 

    }

    public void buscar()

    {         

       String ls_nombre;

       try

       {   ls_nombre=port.buscar(codigo);

           if (ls_nombre!=null)

           {

               nombre=ls_nombre;

               mensaje="Registro encontrado";           

           }

           else

           {

             mensaje="No se pudo encontrar el registro";           

           }

 

        }

       catch (Exception ex)

       {   

            mensaje="No se pudo encontrar el registro";

       }       

 

    }

}

*Correr la aplicación: clic derecho sobre el proyecto/run