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