martes, 19 de abril de 2022
Archivo jboss-web.xml
martes, 29 de enero de 2019
Jenkins
Con la integración continua, podemos saber el estado del software, que funciona, que no y los errores que contiene.
Se puede utilizar esta herramienta para automatizar todo tipo de tareas relacionadas con la creación, prueba y entrega o implementación de software.
martes, 4 de junio de 2013
Git
Git es una sistema de control de versiones distribuido. Su forma de almacenar la información es de forma muy diferente a CVS, Subversion ..,pero su interfaz tiene una formar muy parecida.
Cada vez que se va a guardar, git hace una foto del aspecto de todos los archivos
en ese momento, y guarda una referencia a esa instantánea, aquellos archivos que no han sido modificados, se guarda un enlace de la ultima copia que se tiene de ese archivo.
Otra ventaja es que casi todas sus operaciones son en local , lo que hace las operaciones más rápida, al no depender de ningun otro ordenador en la red.
Continuara......
martes, 28 de mayo de 2013
Direct Web Remoting (DWR)
sábado, 25 de mayo de 2013
ManagedBean
- En el fichero face-config.xml:
- @ManagedBean:
public String getMensaje() {
return mensaje;
}
public void setMensaje(String mensaje) {
this.mensaje = mensaje;
}
Si no añadimos a la anotación (name="nombre") se utilizará por defecto el nombre de la clase en minúscula y para usarlo en la clase jsf se utiliza la siguiente sintaxis #{nombreBean.mensaje}
jueves, 23 de mayo de 2013
Java Message Service (JMS)
Forma parte de la plataforma J2EE para acceder a Sistemas de mensajería (MOM).
Existen 2 modelos de esta API:
- Modelo Punto a Punto: uno envía el mensaje y otro lo recibe, el receptor envia un acuse de recibo y en caso de que no este disponible se queda guardado en un cola en espera.
- Modelo Publicador /Suscriptor: uno publica el mensaje y lo reciben todos los usuarios que estén suscripto al servicio donde se envió ese mensaje.
- Clientes JMS: aplicaciones que envian o reciben mensajes a través de JMS
- Mensajes: los mensajes que se intercambian, se componen de 3 elementos:
- Header.
- Properties.
- Body.
- Objetos administrados: para enviar o recibir mensajes los clientes tienen que conectarse por medio de los objetos. Hay dos tipos de objetos administrados en JMS:
- ConnectionFactory: Se usa para crear una conexión al proveedor del sistema de mensajes.
- Destination: Son los destinos de los mensajes que se envían y el recipiente de los mensajes que se reciben.
- Conseguir un objeto ConnectionFactory a través de JNDI.
- Conseguir un destino, mediante el objeto Destination a través de JNDI.
- Usar ConnectionFactory para conseguir un objeto Connection.
- Usar Destination para crear un objeto Session.
lunes, 16 de enero de 2012
Encapsulación
Este concepto consiste en la ocultación del estado o de los datos miembro de un objeto, de forma que sólo es posible modificar los mismos mediante los métodos definidos para dicho objeto.
Cada objeto está aislado del exterior, de forma que la aplicación es un conjunto de objetos que colaboran entre sí mediante el paso de mensajes invocando sus operaciones o métodos. De esta forma, los detalles de implementación permanecen "ocultos" a las personas que usan las clases, evitando así modificaciones o accesos indebidos a los datos que almacenan las clases.
Además, el usuario de la clase no se tiene que preocuparse de cómo están implementados los métodos y propiedades, concentrándose sólo en cómo debe usarlos.
La encapsulación es una de las principales ventajas que proporciona la programación orientada a objetos.
miércoles, 14 de octubre de 2009
Datamart
Por tanto, para crear el datamart de un área funcional de la empresa es preciso encontrar la estructura óptima para el análisis de su información, estructura que puede estar montada sobre una base de datos OLTP, como el propio datawarehouse, o sobre una base de datos OLAP. La designación de una u otra dependerá de los datos, los requisitos y las características específicas de cada departamento. De esta forma se pueden plantear dos tipos de datamarts:
- Datamart OLAP --> Se basan en los populares cubos OLAP, que se construyen agregando, según los requisitos de cada área o departamento, las dimensiones y los indicadores necesarios de cada cubo relacional. El modo de creación, explotación y mantenimiento de los cubos OLAP es muy heterogéneo, en función de la herramienta final que se utilice.
- Datamart OLTP -- >Pueden basarse en un simple extracto del datawarehouse, no obstante, lo común es introducir mejoras en su rendimiento (las agregaciones y los filtrados suelen ser las operaciones más usuales) aprovechando las características particulares de cada área de la empresa. Las estructuras más comunes en este sentido son las tablas report, que vienen a ser fact-tables reducidas (que agregan las dimensiones oportunas), y las vistas materializadas, que se construyen con la misma estructura que las anteriores, pero con el objetivo de explotar la reescritura de queries (aunque sólo es posibles en algunos SGBD avanzados, como Oracle).
Información sacada del siguiente enlace:
http://www.sinnexus.com/business_intelligence/datamart.aspx
Alterian
Para ello el SGBD indexas las columnas y traspone las filas de las tablas por columnas.
lunes, 28 de septiembre de 2009
Lenguaje Ensamblador
lunes, 31 de agosto de 2009
SimpleDateFormat
Si queremos por ejemplo obtener un fecha en formto dd/mm/aaaa seri de la siguente forma:
SimpleDateFormat parsear = new SimpleDateFormat("dd/MM/yyyy");
pasear.format(fecha);
Donde fecha es la que vamos a formatear.
Podemos realizar otras funciones para mas información mirar en la API
jueves, 2 de julio de 2009
lunes, 22 de junio de 2009
Crear Excel desde Java
POI consiste en APIs para manipular varios formatos de ficheros basados en el formato de Documento Compuesto OLE 2 de Microsoft, utilizando Java puro. En concreto, se pueden leer y escribir ficheros MS Excel utilizando Java.
Voy a poner un ejemplo que yo tuve que hacer:
public class Prueba(){
public String actionExportarExcel(){
ExportarUtils exportar= ExportarUtils.getInstance();
Vector v= new Vector();
// cabecera del excel
v.addElement("Cabecera1, cabecera2,....");
v.addElement(dato1, dato2,dato3,........);
// Generar el fichero
try {
exportar.crearExcel(v, "Titulo", "nombreFichero.xls");
} catch (Exception e) {
log.debug(e.getMessage());
}
return null;
}
}//fin de clase
//Clase para la preparacion del fichero Excel
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.StringTokenizer;
import java.util.Vector;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExportarUtils {
private ExportarUtils() {
}
public static ExportarUtils getInstance() {
if (singleton == null) {
singleton=new ExportarUtils();
}
return singleton;
}
public static void createCell(HSSFRow row, short i, String value, HSSFCellStyle style) {
HSSFCell cell = row.createCell(i);
value = value+" ";
cell.setCellValue(value);
// si no hay estilo, no se aplica
if (style != null)
cell.setCellStyle(style);
}
public void crearExcel(Vector v, String namesheet, String filename)
throws Exception {
try {
workbook = new HSSFWorkbook();
HSSFSheet sheet=workbook.createSheet("Nueva Hoja");
int filas = v.size();
for (int i = 0; i < filas; i++) {
String fila = (String) v.elementAt(i);
StringTokenizer st = new StringTokenizer(fila, ",");
HSSFRow row = sheet.createRow((short) i);
int j = 0;
while (st.hasMoreTokens()) {
String token = st.nextToken();
// para la cabecera, la primera fila, aplicamos un estilo (negrita y color de fondo azul)
if (i == 0) {
HSSFCellStyle style = workbook.createCellStyle();
//style.setFillForegroundColor(IndexedColors.BLUE_GREY.getIndex()); );
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short)10);
font.setFontName("Courier New");
font.setItalic(true);
// font.setStrikeout(true);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//font.setColor(Short.parseShort("#ffffff"));
style.setFont(font);
createCell(row, (short)j, token, style);
} else
createCell(row, (short)j, token, null);
j = j + 1;
}
}
// Asignar automaticamente el tamaño de las celdas en funcion del contenido
//for (int i = 0; i < filas; i++) {
sheet.setDefaultColumnWidth((short) 55);
// }
// Escribir el fichero.
FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
Aui en este enlace bien mejor explicado POI
miércoles, 10 de junio de 2009
Problema con File
File fichero = new File(rutaFichero);
if(fichero.exists()){
}
Pues esto siempre me decía que no existía ese fichero cuando si existía perfectamente.Entonces vi que había una opción de createNewFile() lo utilicé en vez del exists() y esto si me funcionaba, y me dijeron que esto podía ser porque File crea una referencia pero puede ser que todavía no se ha relacionado con el fichero físico y por eso me daba siempre false al comprobarlo con exists().
Una vez hecho esto del createNewFile ya si podemos hacerle el exists().
martes, 9 de junio de 2009
INNER CLASS
Se puede definir una clase embebida de la siguiente forma:
class Externa {
. . .
class Interna {
. . .
}
Una diferencia importante es que un objeto de la clase embebida está relacionado siempre con un objeto de la clase que la envuelve, de tal forma que las instancias de la clase embebida deben ser creadas por una instancia de la clase que la envuelve. Desde el exterior estas referencias pueden manejarse, pero calificandolas completamente, es decir nombrando la clase externa y luego la interna. Además una instancia de la clase embebida tiene acceso a todos los datos miembros de la clase que la envuelve sin usar ningún calificador de acceso especial (como si le pertenecieran).
miércoles, 20 de mayo de 2009
Métodos y Variables estáticas
comunes para todos los objetos de la clase.
Para acceder a ellos ponemos NombreClase.metodoStatic, no se instancia como los métodos y variables objetos.
No conviene usar muchos métodos estáticos, pues si bien se aumenta la rapidez de ejecución, se pierde flexibilidad, no se hace un uso efectivo de la memoria y no se trabaja según los principios de la Programación Orientada a Objetos.
Para crear atributos o métodos estaticos se usa la palabra static.
static int nombreMetodo(){}
lunes, 18 de mayo de 2009
Errores de lógica
Puede costar encontrarlo y para ello hacemos el debug cuando suceden errores de lógica, para ir viendo pasao a paso el programa y ver donde hemos podio fallar.