Skip to main content

Posts

JGMongo con JEE7 +(Primefaces+MongoDB+GlassFish)

Mostrare un ejemplo bĆ”sico del uso de JGMongo , (Java Mapper Object para MongoDB), en un entorno JavaEE 7. Desarrollaremos una simple aplicación maven Java Enterprise Edition, que utiliza la base de datos NoSQL MongoDB, NetBeans como IDE de Desarrollo, Java Server Faces como Framework en conjunto con PrimeFaces. Es un ejemplo muy bĆ”sico donde se almacena los datos de los paĆ­ses en una colección llama paises La vista final sera la siguiente un formulario para captar los datos Y una pagina donde se muestran los paĆ­ses almacenados en la base de datos. Pasos previos: 1. Instalar MongoDB 2. Crear el proyecto Maven 3. Agregar la dependencia al archivo pom.xml   <repositories> <repository>    <id>jitpack.io</id>    <url>https://jitpack.io</url> </repository> </repositories>     <dependency>    <groupId>com.github.avbravo</grou...

JGMongo

JGMongo un Java Mapper para MongoDB Hace algĆŗn tiempo estaba interesado en la creación de un framework para trabajar con MongoDB. Esta versión que les presento es v0.1, permite realizar las operaciones de consultas, eliminación, ordenación, implementaciones de helpers, implementaciones Query, contadores, todo a traves de simples invocaciones de metodos Java. El esquema general 1. Definir los beans 2. Crear un facade que herede de AbstractFacade Con esto es todo lo que necesitas para interactuar con tu base de datos mongodb La idea es que puedas trabajar de manera muy fĆ”cil  MongoDB desde aplicaciones Java Los pasos son sencillos Si usas Maven agrega al archivo  pom.xml     <repositories> <repository>  <id>jitpack.io</id>   <url>https://jitpack.io</url> </repository> </repositories>         <dependencies>          ...

COMPILATION ERROR : error: cannot find symbol en Maven

Entre algunos errores que podemos encontrar al crear un proyecto  maven COMPILATION ERROR :  error: cannot find symbol. Generalmente tenemos una clase en uno de los paquetes , y esta la importamos en otro paquete pero al compilar el proyecto se genera errores como este: Editamos el archivo pom.xml y agregamos     <build>         <plugins>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>3.1</version>           ...

Un ejemplo sencillo de Refactorización y Genericos

Un ejemplo sencillo de Refactorización y Genericos public class Refactorizador<K, V> {     public V copyFromBeans(K k, V v) {         try {             Class claseK = k.getClass();             Class claseV = v.getClass();             Method[] metodosK = claseK.getMethods();             for (Method method : metodosK) {                 if (isGetter(method)) {                     Method metodoGetK = claseK.getDeclaredMethod(method.getName());                   ...

Entrevista a Adam Bien sobre Microprofile.io

Recientemente se han creado iniciativas para impulsar los avances en la plataforma JEE  como son Java EE Guardians ( https://javaee-guardians.io/ ) con el propósito de impulsar la plataforma JEE8 , y en los Ćŗltimos dĆ­as  algunas empresas entre las que figuran (Redhat,Payara, IBM,Tomitribe, LJC) se unieron para  MicroProfile (  http://microprofile.io ), para promover la implementación de Microservicios dentro de JEE. En esta oportunidad entreviste por segunda vez a Adam Bien( http://www.adam-bien.com/ ), sobre algunos aspectos generales de Microprofile. 1. Do you consider that microservices is fundamental to the Java Ecosystem? In most projects we built “microservices” for several years without knowing the term. Microservices are not fundamental, they are rather natural fit to Java EE. 2. Do you believe that there is a delay in the adoption of microservices? No. My clients are perfectly happy with Java EE 7 full profile. It is surprisingly lean. However, m...

Funciones Year en JPA

Si deseas usar funciones SQL con JPA, podemos hacerlo mediante FUNC('funcion',nombre-columna') public List<Recibos> findByIdentificadorAnioActividades(Identificador id, Integer anio, Actividades idactividades) {         Query query = em.createQuery("SELECT r FROM Recibos r WHERE r.id = :id and FUNC('YEAR',r.fecha) = :anio and r.idactividades = :idactividades and r.anulado ='no'");         query.setParameter("idactividades", idactividades);         query.setParameter("anio", anio);         return query.setParameter("id", id).getResultList();     }  

JavaEE Guardians Petición

Como parte de las actividades del grupo Java EE Guardians,  https://javaee-guardians.io/ , se creo una petición para lograr avances en una de las plataformas de desarrollo mas robustas Java EE. Puedes firmarla si estas de acuerdo con la propuesta en el siguiente enlace: https://www.change.org/p/larry-ellison-tell-oracle-to-move-forward-java-ee-as-a-critical-part-of-the-global-it-industry Hasta este momento lleva mĆ”s de 800 firmas, de desarrolladores, lideres de grupos de usuarios,etc.

JavaEE 8 con JPA muy fƔcil

JavaEE 8 con JPA muy fĆ”cil Que tan fĆ”cil es programar en JavaEE8, aun no esta terminado JavaEE8, pero desde hace algĆŗn tiempo tenemos la oportunidad de ir probando  las caracterĆ­sticas que implementa. Usaremos un proyecto creado con JPA Modeler, y mostraremos lo sencillo que es implementar un nuevo modulo en este ejemplo para almacenar la información de una persona en una tabla en MySQL. Agregamos a la pagina principal el nuevo modulo llamado persona. Creamos un formulario con los datos de la persona Lo mostramos en una tabla Creamos un entity llamado Persona @Entity public class Persona implements Serializable {     @Id     @FormParam("id")     private Long id;     @Column(name = "nombre")     @Basic     @NotNull     @Size(min = 5, max = 50, message = "El nombre debe tener entre 5 y 50 caracters")     @FormParam("nombre")     private String nom...

Java EE Guardians

Java EE Guardians DespuĆ©s de unos meses sin escribir, ya que me encontraba en algunos proyectos que me han mantenido con un retraso en la publicación de algunas cosas sobre NetBeans , Java,JavaEE. En esta ocasión deseo compartir con ustedes este iniciativa Java EE Guardians . En la cual deseo agradecer a Reza  Rahman por la invitación a participar de este incitativa. Java EE Guardians es un grupo de personas comprometidas con el futuro de Java EE, preocupados por los retrasos en los avances de JEE8 , el objetivo es preservar los intereses de la comunidad incluyendo Oracle para continuar con el Ć©xito de JEE en el lado del servidor. JEE es muy importante para el ecosistema de Java en general,  es usado en aplicaciones de misión critica y grandes cantidades de aplicaciones estĆ”n escritas en JEE, por lo cual es fundamental la evolución de la plataforma. Que actividades se estĆ”n haciendo: Evangelización de JEE, JEE8 Apoyo a los JSRs de Java EE 8 Discus...

Web Responsive con Primefaces

Web Responsibe con Primefaces Primefaces 5.3 soporta Web Responsive, por ejemplo en el panelGrid indicamos la propiedad layout con el valor de grid <p:panelGrid columns="3" layout="grid">

Reportes con imagenes en Java Server Faces

Reportes con imagenes en Java Server Faces Deseamos mostrar en el reporte la imagen escudonacional.gif, que estĆ” almacenada en /resources/imagenes En el controller que usamos para imprimir crear el metodo   public static String getPath() {          try {              ServletContext ctx = (ServletContext) FacesContext.getCurrentInstance()                      .getExternalContext().getContext();              return ctx.getRealPath("/");          } catch (Exception e) {             JSFUtil.addErrorMessage("getPath() " + e.getLocalizedMessage());     }          return null;      }  En el mĆ©todo imprimir, generar el path mediante el llamado a getPath(), y colocar la  ubi...

Usar un splitButton con datatable primefaces

En algunas ocasiones necesitamos desplegar varias opciones en un datatable, para evitar tener que definir muchas columnas, podemos utilizar un splitButton , que invoca un dialogo en base a cada opción seleccionada. Al seleccionar la opción detalle, muestra un dialogo con el detalle de la fila seleccionada.     <p:column style="width:40px;">                                       <p:fragment autoUpdate="true">                                          <p:splitButton title="#{msg.opciones}"    icon="fa fa-align-left">                                                          ...