المشاركات

عرض المشاركات من 2019

Liferay 7.2. Service Layer - Consultas personalizadas

صورة
Hasta el momento hemos creado consultas simples, como listar todos los registros con un campo u otro campo iguales. Pero necesitamos que nuestros registros puedan ser leídos con cualquier combinación de los cambios. El Service Layer nos cubre grandes funcionalidades con las características básicas del CRUD. Además, podemos agregar otros tipos de consultas. Estos tipos de consulta se llama DynamicQuery , y es lo que veremos en este post.

Presentando MP Lemon Builder

صورة
Aquí les presento la primera versión de mi aplicación MP Lemon Builder . ¿En qué consiste? Es un generador de proyectos MP (MicroProfile), y en esta primera versión permite crear una aplicación asegurada con JWT. La autenticación utilizará el realm del servidor (en esta primera versión utiliza a Payara) y la validación de los roles lo hará utilizando el estándar de JakartaEE. Aquí muestro un vídeo de cómo funciona. Fuentes Esta aplicación está basada en dos proyectos: La publicación de Victor Orozco: A simple MicroProfile JWT token provider with Payara realms and JAX-RS JWT dispenser de Adam Bien . ¿Por qué "Lemon"? Porque me gustan las frutas, y el limón es una de mis preferidas.

Cliente Standalone de JAX-RS (o cualquier endpoint RESTful)

صورة
Si tenemos una aplicación standalone (puede ser un JavaFX, de línea de comandos, batch, etc) que necesite consumir un endpoint hecho en RESTful, por lo general usaríamos algo como esto: public class RestClient { private static final String REST_URI = "http://localhost:8082/spring-jersey/resources/employees"; private Client client = ClientBuilder.newClient(); public Employee getJsonEmployee(int id) { return client .target(REST_URI) .path(String.valueOf(id)) .request(MediaType.APPLICATION_JSON) .get(Employee.class); } //... } (Tomado de https://www.baeldung.com/jersey-jax-rs-client ) Lo cual no está mal, pero creo que debería ser lo más transparente posible. ¿Cómo es eso? Si ven en la línea 13 del código anterior, significa que hay que decirle que haga un GET a la petición, además de pasarle el tipo de respuesta y otras cosas más. La cuestión se volvería algo compleja si queremos hace...

Otro tutorial de Java: Sesión 3 - Tipos de variables y cómo nombrarlas

صورة
Las variables, cuáles son sus tipos, y cómo se deberían declarar.

Otro tutorial de Java: Sesión 2 - Teoría OOP y aplicación en Java

صورة
Comenzaremos un poco con la teoría de Objetos, y veremos cómo se aplica en Java.

Otro tutorial de Java: Sesión 1 - Instalación de entorno y primer programa

صورة
Comenzaremos una nueva serie de videos tutoriales llamado: OTRO TUTORIAL DE JAVA

Liferay 7.2. Service Layer - Creando entidades y servicios

صورة
Sigamos con Liferay, ahora con el tema Service Layer. Liferay Service Builder es una herramienta de generación de código que permite, usando un archivo xml, generar una capa completa de servicios. La generación de código incluye definciones de base de datos, código para caché y persistencia, clases de servicios con métodos CURD y la capa de servicios remotos con compatibilidad con JSON y SOAP Web Services. ¡Y todo esto con un solo archivo service.xml !

Liferay 7.2. Atendiendo peticiones en un Portlet

صورة
Continuamos con las peticiones de un Portlet. En el anterior post vimos como navegar entre páginas. Esto es análogo a las peticiones GET de HTTP. Lo que ahora veremos es cómo atender peticiones tipo POST que generalmente están asociadas a las peticiones de un formulario.

Liferay 7.2. Navegando entre páginas

صورة
Como en toda página web es necesario conocer cómo navegar entre páginas. Naturalmente usaremos un tag a , pero un portlet de Liferay necesita cierto cuidado dado que se deben pasar parámetros específicos, además de considerar valores precargados dependiendo del caso. En este post conoceremos un poco la navegación de Liferay considerando el tag liferay-portlet:renderURL .

Jakarta EE 8 | JSF: Formulario con campo enum y LocalDate

صورة
Siguiendo con nuestra serie de JSF (en Jakarta EE 8) hoy veremos cómo manejar campos de tipo enum y LocalDate . Estos campos no son comunes para manejar en un formulario web, donde generalmente se maneja en campos de tipo String . Veremos que Jakarta EE 8 manipula los de tipo enum de una manera transparente, mientras que los LocalDate necesita de una pequeña ayuda usando un javax.faces.convert.Converter .

Liferay 7.2: Creando nuestro primer portlet

صورة
Siguiendo con nuestros vídeos de Liferay, ahora veremos cómo crear un portlet.

Liferay 7.2: Preparando nuestro entorno de desarrollo con Eclipse

صورة
Comenzaremos una serie de vídeos (adicional a la de Jakarta EE 8) para aprender a desarrollar con Liferay 7.2 En este vídeo veremos cómo configurar nuestro Eclipse IDE junto con nuestro Liferay 7.2.

Jakarta EE 8 | JSF: Validación básica con JSF

صورة
Seguimos con los vídeos de JSF. Ahora veremos cómo validar unos campos en JSF: que no sea blanco que sea un campo email. Sin utilizar algún widget de Javascript, y sin agregar mucho más código. Finalmente, seguiremos teniendo un .war totalmente liviano. Si gustó el vídeo dale like ; si te es útil, compártelo .. es gratis.

Inicializadores en Java

صورة
La inicialización es el asignar un valor inicial cuando se declara una variable. Esto se puede poner en los atributos de las clases: //... public class OrdenCompra{ private java.util.Date fecha=new java.util.Date(); //... Este ejemplo clásico, significa que cuando se instancie un nuevo objeto de OrdenCompra se le asignará un valor inicial (la fecha y hora actual) a la propiedad fecha . De eso estamos de acuerdo todos. Pero un inicializador va más allá de una simple asignación en tiempo de ejecución.

Creando una aplicación Jakarta EE 8 desde un Arquetipo Maven

صورة
En este vídeo veremos cómo crear una aplicación web usando el arquetipo de Java EE 8. Además veremos cómo configurarla para que funcione con JSF. Con este proyecto veremos más funcionalidades que nos trae Jakarta EE 8. Comenzaremos con JSF.

"Punteros a métodos" en Java

صورة
Una de las cosas que extrañaba de C en Java es la capacidad de apuntar a una función. En lugar de invocar a una función directamente, podía hacerlo a través de una variable. Esto es: no importa a qué apunta a esa variable, cuando se invoca con los parámetros correctos, lo ejecutará. En Java lo más cercano que se podía hacer era usando polimorfismo. A partir de Java 8 apareció lo que veremos en este post.

Probando NetBeans 11 en Ubuntu Linux con Corretto 11

صورة
Acabo de bajar Apache NetBeans 11 , y en este vídeo muestro (sin pruebas anteriores) cómo ejecuto mi IDE favorito. Ya tenía instalado Corretto 11 , y simplemente descomprimí el IDE y lo ejecuté.

Conociendo JSF: navegación entre páginas

صورة
Comenzaremos una serie de vídeos para conocer Jakarta EE. En este vídeo conoceremos: Cómo crear una aplicación JSF usando NetBeans 10 Crear páginas JSF Navegación entre las páginas Uso básico de ManagedBeans para guardar información y compartirlas entre páginas. Si te gustó y te es útil el vídeo, haz clic en "Me gusta". Con eso me ayudas a subir más vídeos de este tipo. No te olvides de suscribirte a mi canal y darle clic en la campana para que te enteres cuando publico un nuevo vídeo. Si necesitas asesoría en Java para la Universidad, no dudes en escribirme a asesoria@apuntesdejava.com

Instalando Apache NetBeans 10 y configurarlo con Jakarta EE

صورة
En este vídeo cómo instalar el Apache NetBeans 10 y también configuarlo para que funcione con Jakarta EE. Los archivos descargados son los siguientes: Apache NetBeans 10:  https://netbeans.apache.org/download/index.html Apache Tomcat 8:  https://tomcat.apache.org/download-80.cgi Payara 5:  https://www.payara.fish/software/downloads/all-downloads/ También deberíamos tener instalado tanto el Java 8, como el JDK 11. El IDE necesita del JDK 11, y los servidores como Payara, Tomcat necesitan de Java 8, es por ello que lo tengo preinstalados. La instalación de JDK 11 es bastante simple: Descargar de aquí el .zip  https://jdk.java.net/11/ Descomprimir el .zip.. y listo. Para el Java 8 (si estamos en Windows) se tendría que descargar de la página de oracle ( https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ) e instalarlo como un software de Windows. O.. (mejor aún) descargar la distribución de Amazon: Amazon C...