Archivos Properties con @Inject

Otra forma de usarlos es mediante @Inject

Crear el archivo en src/main/resources

Crear la clase MicroservicesProducer.java

import com.javscaz.fiscalclient.services.JsfUtil;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Properties;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;

/**
 *
 * @author avbravo
 */

@Named
@ApplicationScoped
public class MicroservicesProducer implements Serializable{
private String url=null;
   


    public String microservicesHost() {

        try {
            System.out.println("url inicial "+url);
            if (url== null) {

                InputStream inputStream = getClass()
                        .getClassLoader().getResourceAsStream("microservices.properties");
                Properties prop = new Properties();

                if (inputStream != null) {

                    prop.load(inputStream);
                   url = prop.getProperty("url");
                    
                  //  System.out.println("el url del microservices es "+url);
                  
                } else {
                   JsfUtil.errorMessage("No se puede cargar el archivo microservices.properties");
                }

            }
        } catch (Exception e) {
            JsfUtil.errorMessage("microservicesHost() " + e.getLocalizedMessage());
        }
        return url;
    }

}

En las otras clases realizamos la injeccion

  @Inject
    MicroservicesProducer microservicesProducer;

Para obtener el valor invocamos el método

microservicesProducer.microservicesHost()

Ejemplo clase:

@Stateless
public class JsdfacuturaServices 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;
    
//    private String getHost() {
//        String ip = "localhost:8080";
//
//        try {
//            InputStream inputStream = getClass()
//                    .getClassLoader().getResourceAsStream("microservices.properties");
//            Properties prop = new Properties();
//
//            if (inputStream != null) {
//
//                prop.load(inputStream);
//                ip = prop.getProperty("ip");
//            }
//        } catch (Exception e) {
//            System.out.println("getHost() " + e.getLocalizedMessage());
//        }
//
//        return ip;
//    }

    public List<Jsdfactura> noImpresas() {
        List<Jsdfactura> jsdfacturaList = new ArrayList<>();
        try {
            System.out.println(" microservicesProducer.microservicesHost()==>>>  "+microservicesProducer.microservicesHost());
            Client client = ClientBuilder.newClient();
            WebTarget target = client.target("http://" + microservicesProducer.microservicesHost() + "/fiscalserver/resources/jsdfactura/%7Bnoimpresas%7D");

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

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

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

    public Boolean add(Jsdfactura jsdfactura) {
        try {
            Client client = ClientBuilder.newClient();
            WebTarget webTarget
                    = client.target("http://" +  microservicesProducer.microservicesHost()  + "/fiscalserver/resources/jsdfactura/jsdfactura/add");

            Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
            Response response = invocationBuilder.post(Entity.entity(jsdfactura, 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;
    }

    /**
     * consulta por codigo_pedido
     *
     * @param codigo_
     * @return
     */
    public Jsdfactura findByCodigo(String codigo_pedido) {
        Jsdfactura jsdfactura = new Jsdfactura();
        try {
            Client client = ClientBuilder.newClient();
            jsdfactura = client
                    .target("http://" +  microservicesProducer.microservicesHost()  + "/fiscalserver/resources/jsdfactura/jsdfactura/")
                    .path("/{codigo_pedido}")
                    .resolveTemplate("codigo_pedido", codigo_pedido)
                    .request(MediaType.APPLICATION_JSON)
                    .get(Jsdfactura.class
                    );

            //String result = FAIL;
        } catch (Exception e) {
            System.out.println("findByCodigo() " + e.getLocalizedMessage());
        }
        return jsdfactura;
    }

    /**
     * consulta por codigo_pedido
     *
     * @param createformparam envia los parametros en un form aqui se colocan
     * todos los parametros
     * @return
     */
    public Jsdfactura createFormParam(Integer idfactura, String codigo_pedido, Date fecha) {
        Jsdfactura jsdfactura = new Jsdfactura();
        try {
            Form form = new Form();
            form.param("idfactura", idfactura.toString());
            form.param("codigo_pedido", codigo_pedido);
            form.param("fecha", fecha.toString());

            Client client = ClientBuilder.newClient();

            String callResult = client
                    .target("http://" +  microservicesProducer.microservicesHost()  + "/fiscalserver/resources/jsdfactura/jsdfactura/createformparam/")
                    .request(MediaType.APPLICATION_JSON)
                    .post(Entity.entity(form,
                            MediaType.APPLICATION_FORM_URLENCODED_TYPE),
                            String.class
                    );

            String result = PASS;
            if (!SUCCESS_RESULT.equals(callResult)) {
                result = FAIL;
                System.out.println("no lo creo");
            } else {
                System.out.println(" lo creo");
            }

            //String result = FAIL;
        } catch (Exception e) {
            System.out.println("createFormParam() " + e.getLocalizedMessage());
        }
        return jsdfactura;
    }

    public void testForm(Integer idfactura, String codigo_pedido, Date fecha) {

        Form form = new Form();
        form.param("idfactura", idfactura.toString());
        form.param("codigo_pedido", codigo_pedido);
        form.param("fecha", fecha.toString());
        Client client = ClientBuilder.newClient();
        WebTarget webTarget
                = client.target("http://" +  microservicesProducer.microservicesHost()  + "/fiscalserver/resources/jsdfactura");
        final Response r2 = client.target("/jsdfactura/createformparam").request().post(Entity.form(form));
        System.out.println(" -->r2" + r2);

        System.out.println(" -->estatus" + r2.getStatus());
        System.out.println(" r2.getHeaderString(\"Location\")" + r2.getHeaderString("Location"));
//

    }

}

Last updated