payaramicro
  • Introduction
  • Capitulo 1
    • Links
    • Ejecutar un war
    • Crear un Uberjar
    • Pool de Conexiones
    • Payara micro embebido
    • Archivo log
    • Ejecutar en un puerto
    • Parametros ejecucion
    • Crear Realm
    • Construirlo con Docker
  • Generar proyecto desde linea de comandos
  • Optimizar Payara Micro con Java 11
    • Inicio rapido
  • PayaraMicro con JDBC realm
  • Capitulo II Payara Micro embebido
    • Maven
    • Payara micro con NetBeans
  • Payara Micro con NetBeans
  • RemoteCDIEvents
  • Capitulo III Payara Micro con SSL
    • Untitled
    • Pasos
  • Payara Micro Embebido
  • Microservices
    • Microservices
    • Ejemplos de Microservicios
    • Payara Micro ESB Timer
  • Seguridad
    • Microservicios con IdentityStore
      • Microservicios con IdentityStore
        • Cliente
      • Referencias
  • Payara con JWT/ MP Lemon Builder
    • Crear Realms
    • mp-lemon-builder
    • jwt-provider
    • Cliente jwt
    • Cliente Java JWT
    • Libreria Para JWT
      • Java Cliente JWT
  • Certificado Digital
  • AutoComplete con Microservices
    • Autocomplete con Microservices con SQL Server
  • Envio Archivos
    • Enviar Archivos por JAX-RS
      • FileUpload archivos mediante JAX-RS
      • Enviar archivo .zip, encriptado.
Powered by GitBook
On this page

Was this helpful?

  1. AutoComplete con Microservices

Autocomplete con Microservices con SQL Server

Se cuenta con el entity bancos

public class Jsdbanco {

    private Integer idbanco;
    private String banco;
  

    public Jsdbanco() {
    }
    }
    

En el repository agregamos el método complete

 // <editor-fold defaultstate="collapsed" desc="List<Jsdbanco> complete(String field, String value) ">
   
    public List<Jsdbanco> complete(String field, String value) {
        List<Jsdbanco> list = new ArrayList<>();

        try {
            String sql="";
             if(value == null || value.equals("") || value.equals("{{complete}}")){
                sql ="SELECT * FROM JSD.dbo." + tablename ;
            }else{
                  sql ="SELECT * FROM JSD.dbo." + tablename + " where "+field + " like '%"+value+"%'";
             }
           
           
           
               BeanListHandler<Jsdbanco> beanListHandler
                    = new BeanListHandler<>(Jsdbanco.class);

            QueryRunner runner = new QueryRunner();
            list = runner.query(connection, sql, beanListHandler);

        } catch (Exception e) {
              System.out.println("complete()"+ e.getLocalizedMessage());
        }
        return list;
    }
 // </editor-fold>

Quedaría

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.fiscalserver.jsd.repository;


import com.avbravo.fiscalserver.interfaces.Repository;
import com.avbravo.fiscalserver.jsd.entity.Jsdbanco;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.inject.Inject;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

/**
 *
 * @author avbravo
 */
@Stateless
public class JsdbancoRepository extends Repository<Jsdbanco> {

    @Inject
    Connection connection;
    String tablename = "jsdbanco";

    public JsdbancoRepository() {
        super(Jsdbanco.class, "database");
    }

    @Override
    public Object find(String key, Object value) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
    // <editor-fold defaultstate="collapsed" desc="List<Jjsdbanco> findAll()">
   
    public List<Jsdbanco> findAll() {
        List<Jsdbanco> list = new ArrayList<>();
        try {
            BeanListHandler<Jsdbanco> beanListHandler
                    = new BeanListHandler<>(Jsdbanco.class);
            QueryRunner runner = new QueryRunner();
            list = runner.query(connection, "SELECT * FROM JSD.dbo." + tablename, beanListHandler);

        } catch (Exception e) {
              System.out.println("findAll()"+ e.getLocalizedMessage());
        }
        return list;
    }
 // </editor-fold>
   
    
    
    
    // <editor-fold defaultstate="collapsed" desc="Jsdbanco findByIdbanco(Integer idbanco)">

     
    /**
     *
     * 
     *
     * @return
     */
    public Jsdbanco findByIdbanco(Integer idbanco) {
        List<Jsdbanco> list = new ArrayList<>();
        Jsdbanco jsdbanco = new Jsdbanco();

        try {
            BeanListHandler<Jsdbanco> beanListHandler
                    = new BeanListHandler<>(Jsdbanco.class);

            String sql = "SELECT  *"
                    + " FROM JSD.dbo.jsdbanco a "
                    + " where  a.idbanco='" + idbanco + "'";
                    

            QueryRunner runner = new QueryRunner();
            list = runner.query(connection, sql, beanListHandler);
            if (list == null || list.isEmpty()) {

            } else {
                jsdbanco = list.get(0);
            }

        } catch (Exception e) {
        System.out.println("noImpresas()"+ e.getLocalizedMessage());
        }

        return jsdbanco;
    }
    
        // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Jsdbanco findByIdbanco(Integer idbanco)">

     
    /**
     *
     * 
     *
     * @return
     */
    public List<Jsdbanco> findByBanco(String banco) {
        List<Jsdbanco> list = new ArrayList<>();
        Jsdbanco jsdbanco = new Jsdbanco();

        try {
            BeanListHandler<Jsdbanco> beanListHandler
                    = new BeanListHandler<>(Jsdbanco.class);

            String sql = "SELECT  *"
                    + " FROM JSD.dbo.jsdbanco a "
                    + " where  a.banco='" + banco + "'";
                    

            QueryRunner runner = new QueryRunner();
            list = runner.query(connection, sql, beanListHandler);
            

        } catch (Exception e) {
        System.out.println("noImpresas()"+ e.getLocalizedMessage());
        }

        return list;
    }
    
        // </editor-fold>
    
    
    
    // <editor-fold defaultstate="collapsed" desc="Boolean insert(Jsdbanco jsdbanco)">

    public Boolean insert(Jsdbanco jsdbanco) {
        Boolean saved = false;

        try {

            QueryRunner runner = new QueryRunner();
            String insertSQL                   
                    = "INSERT INTO JSD.dbo.jsdbanco"
                    + "(banco)"
                    + "VALUES ( ?)";

         
            int numRowsInserted
                    = runner.update(
                            connection, insertSQL,
                            jsdbanco.getBanco()
                            
                         
                    );
            if (numRowsInserted > 0) {
                saved = true;
            }

            //assertEquals(numRowsInserted, 1);
        } catch (Exception e) {
            System.out.println("insert()" + e.getLocalizedMessage());
        }
        return saved;
    }
        // </editor-fold>

    
     // <editor-fold defaultstate="collapsed" desc="List<Jsdbanco> complete(String field, String value) ">
   
    public List<Jsdbanco> complete(String field, String value) {
        List<Jsdbanco> list = new ArrayList<>();

        try {
            String sql="";
             if(value == null || value.equals("") || value.equals("{{complete}}")){
                sql ="SELECT * FROM JSD.dbo." + tablename ;
            }else{
                  sql ="SELECT * FROM JSD.dbo." + tablename + " where "+field + " like '%"+value+"%'";
             }
           
           
           
               BeanListHandler<Jsdbanco> beanListHandler
                    = new BeanListHandler<>(Jsdbanco.class);

            QueryRunner runner = new QueryRunner();
            list = runner.query(connection, sql, beanListHandler);

        } catch (Exception e) {
              System.out.println("complete()"+ e.getLocalizedMessage());
        }
        return list;
    }
 // </editor-fold>
}

Crearemos la clase CompleteResources.java donde colocaremos todos los complete para todos los repository.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.fiscalserver.jsd.resources;

import com.avbravo.fiscalserver.jsd.entity.Jsdbanco;
import com.avbravo.fiscalserver.jsd.repository.JsdbancoRepository;
import java.util.List;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
 *
 * @author avbravo Se usa un resource para colocar todos los autocomplete
 */
@Stateless
@Path("complete")
public class CompleteResources {

    private static final String SUCCESS_RESULT = "<result>success</result>";
    private static final String FAILURE_RESULT = "<result>failure</result>";
    @Inject
    JsdbancoRepository jsdbancoRepository;

    /*
    complete por banco
     */
    @GET
    @Path("/jsdbanco/{banco}")
    @Produces(MediaType.APPLICATION_JSON)
    public List<Jsdbanco> completeBanco(@PathParam("banco") String banco) {
        return jsdbancoRepository.complete("banco", banco);
    }

}

En el proyecto fiscalclient

Crear la claseJsdbancoServices.java

import com.javscaz.fiscalclient.entity.Jsdbanco;
import com.javscaz.fiscalclient.producer.MicroservicesProducer;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

/**
 *
 * @author avbravo
 */
@Stateless
public class JsdbancoServices implements Serializable {

    private static final String PASS = "pass";
    private static final String FAIL = "fail";
    private static final String SUCCESS_RESULT = "<result>success</result>";

    @Inject
    MicroservicesProducer microservicesProducer;
    

// <editor-fold defaultstate="collapsed" desc="List<Jsdbanco> findAll()>
    public List<Jsdbanco> findAll() {
        List<Jsdbanco> jsdbancoList = new ArrayList<>();
        try {
           
            Client client = ClientBuilder.newClient();
            WebTarget target = client.target( microservicesProducer.microservicesHost() + "/fiscalserver/resources/jsdbanco/findall");

            GenericType<List<Jsdbanco>> data = new GenericType<List<Jsdbanco>>() {
            };

            jsdbancoList = target.request(MediaType.APPLICATION_JSON).get(data);

        } catch (Exception e) {
            System.out.println("findAll()() " + e.getLocalizedMessage());
        }
        return jsdbancoList;
    }
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Boolean add(Jsdbanco jsdbanco)">
    public Boolean add(Jsdbanco jsdbanco) {
        try {
            Client client = ClientBuilder.newClient();
            WebTarget webTarget
                    = client.target(  microservicesProducer.microservicesHost()  + "/fiscalserver/resources/jsdbanco/add");

            Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
            Response response = invocationBuilder.post(Entity.entity(jsdbanco, MediaType.APPLICATION_JSON));

            System.out.println(response.getStatus());
            if (response.getStatus() == 400) {
                return false;
            }
            System.out.println(response.readEntity(String.class
            ));
            return true;
        } catch (Exception e) {
            System.out.println("errort" + e.getLocalizedMessage());
        }
        return false;
    }
// </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Jsdbanco findByIdbanco(Integer idbanco) ">
    /**
     * consulta por codigo_pedido impresa
     *
     * @param codigo_
     * @return
     */
    public Jsdbanco findByIdbanco(Integer idbanco) {
        Jsdbanco jsdbanco = new Jsdbanco();
        try {
         
            Client client = ClientBuilder.newClient();
            jsdbanco = client
                    .target( microservicesProducer.microservicesHost()  + "/fiscalserver/resources/jsdbanco/search/")
                    .path("/{idbanco}")
                    .resolveTemplate("idbanco", idbanco)
                    .request(MediaType.APPLICATION_JSON)
                    .get(Jsdbanco.class
                    );

            //String result = FAIL;
        } catch (Exception e) {
            System.out.println("findByIdbanco() " + e.getLocalizedMessage());
        }
        return jsdbanco;
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="List<Jsdbanco> complete( String query)">
     public List<Jsdbanco> complete( String query) {
        List<Jsdbanco> suggestions = new ArrayList<>();
        try {
    
            if(query == null || query.isEmpty()){
                query ="{{complete}}";
            }
              Client client = ClientBuilder.newClient();
            suggestions = client
                    .target(microservicesProducer.microservicesHost() + "/fiscalserver/resources/complete/jsdbanco/")
                    .path("/{banco}")
                    .resolveTemplate("banco", query)
                    .request(MediaType.APPLICATION_JSON)
                    .get(new GenericType<List<Jsdbanco>>() {
                    });

      
        } catch (Exception e) {
            System.out.println("complete() " + e.getLocalizedMessage());
        }

        return suggestions;
    }
    // </editor-fold>
    

}
PreviousCertificado DigitalNextEnviar Archivos por JAX-RS

Last updated 5 years ago

Was this helpful?