Java Expert....Java/Open Source Addict

Redes Sociales

twitterlinkedinrss feedemail youtube

jueves, 8 de marzo de 2018

KolourPaint - Paint para Linux


Estimad@s amig@s,

Si están utilizando Linux y necesita una herramienta funcional, no tan avanzada y que permite retocar imágenes, redimensionarlas, etc. Una opción interesante es KolourPaint, el cúal es una herramienta similar al Paint que teniamos en Windows.

Para instalar la herramienta debemos abrir un terminal, logearnos como root y proceder a digitar el siguiente comando: yum - y install kolourpaint.


viernes, 16 de junio de 2017

Error Web Service RESTEASY003200



Estimad@s amig@s

Revisando una aplicación web, específicamente temas relacionados a servicios web de una aplicación de un cliente me tope con el siguiente error:

RESTEASY003200: Could not find message body reader for type: class java.lang.Integer of content type: */*

Revisando detenidamente la app, pude detectar el error. El cual se debió a la importación incorrecta del paquete para la clase PathParam. 

Paquete Incorrecto.
import javax.websocket.server.PathParam;

Paquete Correcto
import javax.ws.rs.PathParam;

Espero les sirva de ayuda, no olviden subscribirse al Canal de Matoosfe. Saludos

miércoles, 5 de abril de 2017

LinkageError: Loader Constraint Violation


Estimad@s amig@s 

Quiero compartirles un error que se presentó cuando estaba realizando una integración de sistemas desarrollado bajo la plataforma JEE. El error específicamente que salio fue:

  Loader: 
java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type with name

Luego de revisar las configuraciones de cada sistema que formó parte de la integración y las librerías utilizadas, pude identificar que el inconveniente se presenta cuando se tiene dos jars de la misma librería cargada en el proyecto. En este caso en la carpeta lib del EAR se tenia a la librería XYZ.jar y dentro del proyecto web en la carpeta WEB-INF/lib/ la misma librería XYZ.jar. Lo cual provocaba el error, la solución fue mantener una sola librería, en mi caso mantuve la de carpeta lib del EAR por su alcance.

Espero les sirve de ayuda, no olviden compartirlo, revisar el canal de Matoosfe en Youtube y subscribirse.

Saludos

martes, 21 de febrero de 2017

Arreglar NTFS Partition en Centos


Estimad@s

Al momento de conectar mi disco duro externo TOSHIBA EXT para bajar una aplicación que se me había copiado en el mismo desde una máquina con Sistema Operativo Windows 7, se obtuvo el siguiente mensaje de error.



El cual no permitía montar el disco duro y por ende acceder a los archivos. Para solucionar el inconveniente se realizaron los siguientes pasos:
1.- Instalar el paquete epel-release
2.- Instalar los paquetes ntfs-3g y ntfsprogs.



3.- Conectar el disco duro y proceder a verificar donde está la partición a corregir con formato NTFS. Para lo cual se debe digitar el comando fdisk -l.



4.-  Una vez identificada la partición a corregir, se debe digitar el siguiente comando ntfsfix /dev/,   a lo que NTFSProgs intentará arreglar la partición.


5. Finalmente se debe proceder a montar el dispositivo nuevamente y tendremos corregido nuestro disco para poder utilizarlo.


Espero les haya servido, no olviden compartirlo, comentar, subscribirse al canal de Matoosfe.

Saludos


Error Versión Maven : Unsupported major.minor version 51.0


Estimad@s amig@s

En esta oportunidad quiero compartirles un error que se me presentó con un proyecto desarrollado en JEE que utiliza Maven, al momento de compilar (Maven Build). El error que se me presentó es el siguiente:



Este error se debe a la incompatibilidad de la versión de JDK con la versión de Maven; es decir, cada versión de Maven requiere una versión de jdk base o superior para poder ejecutarse. Por ejemplo, en la versión de Maven 3.3 que tengo instalada en mi equipo la versión base de JDK es la 1.7 o superior, pero el error se produjo porque quiero ejecutar Maven 3.3 con una versión inferior al JDK; en este caso la 1.6. Se tiene dos soluciones:

  1. Bajar la versión de Maven  a la 3.2.5 que soporta JDK 1.6.
  2. Configurar el JDK de mis proyectos de Maven al JDK 1.7.

Espero les haya servido este post, no olviden compartir, comentar y subscribirse al canal de Matoosfe. En el cual encontrarán varios cursos relacionados con la tecnología Java.

miércoles, 16 de noviembre de 2016

This compilation unit is not on the build path of a Java Project



Estimad@s amig@s  les quiero compartir la solución a un error que se me presentó al momento de realizar un autocomplete en Eclipse para llamar a un método dentro de una clase. Lo cual se lo realiza con CTRL + SPACE. El error que salio, fue el siguiente:



Cabe mencionar que este error se suscita cuando en un proyecto Java no se tiene configurado el JDK. Pero en este caso se produjo porque se estaba editando la clase Java apuntando al proyecto principal de Maven, donde no se tiene configurado una unidad de compilación (JDK Library). La solución es editar la clase que se encuentra dentro del proyecto que contiene la clase como módulo. A continuación se expone la gráfica.




Espero les sirve de ayuda, no olviden revisar las redes sociales de Matoosfe, ni subscribirse al canal de youtube. Un abrazo, bendiciones.

jueves, 18 de febrero de 2016

Composite id with FK – JPA


Muchas veces se necesite crear una clave primaria utilizando más de una columna ya sea que ésta este formado por dos columnas simples o que una de ellas represente un FK de otra tabla. Para representar esto en JPA utilizaremos el siguiente ejemplo relacional.

En este caso la tabla Mat_Tarea tiene dos PK y una de ellas es FK de la tabla Mat_Proyecto; para realizar el respectivo mapeo en JPA se debe realizar lo siguiente:
  • Crear los EntityBean para cada tabla

  • Proyecto [code] package com.matoosfe.modelo.entitybeans; import java.io.Serializable; import javax.persistence.*; import java.util.Date; import java.util.Set; /** * The persistent class for the Mat_Proyecto database table. * */ @Entity @Table(name="Mat_Proyecto") public class Proyecto implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int idProy; private String desProy; @Temporal( TemporalType.TIMESTAMP) private Date fecFinProy; @Temporal( TemporalType.TIMESTAMP) private Date fecIniProy; private String nomProy; //bi-directional many-to-one association to Tarea @OneToMany(mappedBy="matProyecto") private Set<Tarea> matTareas; public Proyecto() { } public int getIdProy() { return this.idProy; } public void setIdProy(int idProy) { this.idProy = idProy; } public String getDesProy() { return this.desProy; } public void setDesProy(String desProy) { this.desProy = desProy; } public Date getFecFinProy() { return this.fecFinProy; } public void setFecFinProy(Date fecFinProy) { this.fecFinProy = fecFinProy; } public Date getFecIniProy() { return this.fecIniProy; } public void setFecIniProy(Date fecIniProy) { this.fecIniProy = fecIniProy; } public String getNomProy() { return this.nomProy; } public void setNomProy(String nomProy) { this.nomProy = nomProy; } public Set<Tarea> getMatTareas() { return this.matTareas; } public void setMatTareas(Set<Tarea> matTareas) { this.matTareas = matTareas; } } [/code] Tarea [code] package com.matoosfe.modelo.entitybeans; import java.io.Serializable; import javax.persistence.*; import java.util.Date; import java.util.Set; /** * The persistent class for the Mat_Tarea database table. * */ @Entity @Table(name="Mat_Tarea") public class Tarea implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId private TareaPK id; @Temporal( TemporalType.TIMESTAMP) private Date fechaFinTar; @Temporal( TemporalType.TIMESTAMP) private Date fechaIniTar; private String nomTarea; //bi-directional many-to-one association to Proyecto @ManyToOne @JoinColumn(name="idProy", insertable=false, updatable=false) private Proyecto matProyecto; public Tarea() { } public TareaPK getId() { return this.id; } public void setId(TareaPK id) { this.id = id; } public Date getFechaFinTar() { return this.fechaFinTar; } public void setFechaFinTar(Date fechaFinTar) { this.fechaFinTar = fechaFinTar; } public Date getFechaIniTar() { return this.fechaIniTar; } public void setFechaIniTar(Date fechaIniTar) { this.fechaIniTar = fechaIniTar; } public String getNomTarea() { return this.nomTarea; } public void setNomTarea(String nomTarea) { this.nomTarea = nomTarea; } public Proyecto getMatProyecto() { return this.matProyecto; } public void setMatProyecto(Proyecto matProyecto) { this.matProyecto = matProyecto; } } [/code]
  • Cuando se tiene más de una columna como PK se debe crear una clase por tabla donde se asocia todos los atributos que representan la PK y relacionarlo con la clase padre. En este caso se creará una clase llamada TareaPK como se muestra a continuación.
  • [code] package com.matoosfe.modelo.entitybeans; import java.io.Serializable; import javax.persistence.*; /** * The primary key class for the Mat_Tarea database table. * */ @Embeddable public class TareaPK implements Serializable { //default serial version id, required for serializable classes. private static final long serialVersionUID = 1L; private int idTarea; private int idProy; public TareaPK() { } public int getIdTarea() { return this.idTarea; } public void setIdTarea(int idTarea) { this.idTarea = idTarea; } public int getIdProy() { return this.idProy; } public void setIdProy(int idProy) { this.idProy = idProy; } public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof TareaPK)) { return false; } TareaPK castOther = (TareaPK)other; return (this.idTarea == castOther.idTarea) && (this.idProy == castOther.idProy); } public int hashCode() { final int prime = 31; int hash = 17; hash = hash * prime + this.idTarea; hash = hash * prime + this.idProy; return hash; } } [/code]
  • Como último paso se tiene que aumentar los atributos insertable=false y updatable=false en el mapeo de la relación existente en el POJO Tarea con Proyecto para realizar la dependencia.
  • [code] package com.matoosfe.modelo.entitybeans; import java.io.Serializable; import javax.persistence.*; import java.util.Date; import java.util.Set; /** * The persistent class for the Mat_Tarea database table. * */ @Entity @Table(name="Mat_Tarea") public class Tarea implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId private TareaPK id; @Temporal( TemporalType.TIMESTAMP) private Date fechaFinTar; @Temporal( TemporalType.TIMESTAMP) private Date fechaIniTar; private String nomTarea; //bi-directional many-to-one association to Proyecto @ManyToOne @JoinColumn(name="idProy", insertable=false, updatable=false) private Proyecto matProyecto; ....... } [/code]
Saludos