Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas
martes, 16 de febrero de 2016
Estimad@s amig@s
En el siguiente recurso se puede apreciar como subir imágenes al servidor utilizando Primefaces 3.5.
Espero que haya sido de utilidad, compartamos la información.No olvides subscribirse a nuestro canal, un vídeo nuevo del curso cada lunes y vídeo de tips entres semana.
Como manejar el Look and Feel
febrero 16, 2016 martosfre
- Plataforma.
- Sistema Operativo.
- API JDK
- Externos
Espero que les haya servido de utilidad, no olviden compartir, subscribirse y sobre todo comentar.
Problemas versiones Jasper vs IReport
febrero 16, 2016 martosfre
Cuando se esté trabajando con reportes con el diseñador de iReport y JasperReport se debe asegurar que la versión con la cual se compile los reportes debe ser la misma de la librería cargada en su proyecto web; es decir, si se creo los reportes con la versión 3.7.4 de iReport se tiene que cargar la librería 3.7.4 de JasperReport para evitar que se produzca la siguiente error:
net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0
Certification Java – Set
febrero 16, 2016 martosfre
Teniendo que la clase NameBean.java es la siguiente:
[code] package com.matoosfe.certification.basico; public class NameBean { private String str; NameBean(String str ){ this.str = str; } /** * @return the str */ public String getStr() { return str; } /** * @param str the str to set */ public void setStr(String str) { this.str = str; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return getStr(); } } [/code]
Cuál es la salida que se muestra al ejecutar el código?
[code] package com.matoosfe.certification.basico; import java.util.HashSet; public class CollClient { public static void main(String []sss) { HashSet myMap = new HashSet(); String s1 = new String("das"); String s2 = new String("das"); NameBean s3 = new NameBean("abcdef"); NameBean s4 = new NameBean("abcdef"); myMap.add(s1); myMap.add(s2); myMap.add(s3); myMap.add(s4); System.out.println(myMap); } } [/code]
Entre las opciones tenemos: a) das abcdef abcdef b) das das abcdef abcdef c) das abcdef d) abcdef abcdef
Para determinar la respuesta correcta deberiamos referirnos a la definición de la colección utilizado en este caso la interfaz Set la cual determina que no se puede tener dos objetos repetidos en la collection, los cuales para ser añadidos a la collection utilizan el método equals con la siguiente sentencia e1.equals(e2). De lo que podemos puntualizar lo siguiente
La opción b) esta incorrecta porque los objetos s1 y s2 a pesar de que tienen el mismo contenido, tienen el mismo hascode (el cual es obtenido en base al contenido) por lo que son iguales, lo que determina que en la collection del tipo Set solo podria estar uno de ellos. A continuación se expone la definición del método hashCode de la clase String donde se puede apreciar lo mencionado. [code] public int hashCode() { int h = hash; if (h == 0) { int off = offset; char val[] = value; int len = count; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; } [/code]
La opción c) esta incorrecta porque las instancias del Objeto NameBean a pesar de que tienen el mismo contenido no tienen el mismo hashcode ya que son objetos diferentes, diferentes referencias.
La opción d) esta descartada porque en la collection myMap deberia existir al menos un elmento del tipo String y del tipo NameBean
Para terminar por la explicaciones anteriormente expuestas a las anteriores respuestas se concluye que la respuesta correcta es la a) ya que dos objetos son iguales siempre y cuando sean iguales en contenido y referencia (hasCode)
[code] package com.matoosfe.certification.basico; public class NameBean { private String str; NameBean(String str ){ this.str = str; } /** * @return the str */ public String getStr() { return str; } /** * @param str the str to set */ public void setStr(String str) { this.str = str; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return getStr(); } } [/code]
Cuál es la salida que se muestra al ejecutar el código?
[code] package com.matoosfe.certification.basico; import java.util.HashSet; public class CollClient { public static void main(String []sss) { HashSet myMap = new HashSet(); String s1 = new String("das"); String s2 = new String("das"); NameBean s3 = new NameBean("abcdef"); NameBean s4 = new NameBean("abcdef"); myMap.add(s1); myMap.add(s2); myMap.add(s3); myMap.add(s4); System.out.println(myMap); } } [/code]
Entre las opciones tenemos: a) das abcdef abcdef b) das das abcdef abcdef c) das abcdef d) abcdef abcdef
Para determinar la respuesta correcta deberiamos referirnos a la definición de la colección utilizado en este caso la interfaz Set la cual determina que no se puede tener dos objetos repetidos en la collection, los cuales para ser añadidos a la collection utilizan el método equals con la siguiente sentencia e1.equals(e2). De lo que podemos puntualizar lo siguiente
- En Java para comparar que dos objetos sean iguales (mismo objeto, misma instancia o referencia) se utiliza el símbolo == que no tiene nada que ver con el contenido.
- En cambio el método equals sirve para comparar que dos objetos sean iguales por lo general en contenido, no el mismo objeto
- Adicionalmente en una collection para que dos elementos sean iguales deben de tener el mismo hashCode
La opción b) esta incorrecta porque los objetos s1 y s2 a pesar de que tienen el mismo contenido, tienen el mismo hascode (el cual es obtenido en base al contenido) por lo que son iguales, lo que determina que en la collection del tipo Set solo podria estar uno de ellos. A continuación se expone la definición del método hashCode de la clase String donde se puede apreciar lo mencionado. [code] public int hashCode() { int h = hash; if (h == 0) { int off = offset; char val[] = value; int len = count; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; } [/code]
La opción c) esta incorrecta porque las instancias del Objeto NameBean a pesar de que tienen el mismo contenido no tienen el mismo hashcode ya que son objetos diferentes, diferentes referencias.
La opción d) esta descartada porque en la collection myMap deberia existir al menos un elmento del tipo String y del tipo NameBean
Para terminar por la explicaciones anteriormente expuestas a las anteriores respuestas se concluye que la respuesta correcta es la a) ya que dos objetos son iguales siempre y cuando sean iguales en contenido y referencia (hasCode)
certificationjava / collections / java / martosfre / matoosfe / set
miércoles, 5 de agosto de 2015
Formas de Persistencia
agosto 05, 2015 martosfre
Estimados amig@s les comporto un extracto del libro que JPA que estoy realizando como parte de mi preparación para la certificación OCEJPA Espero sus comentarios.
1.2 Formas de Persistencia.
La persistencia involucra el almacenamiento permanente de la información sobre un medio físico o lógico asociándolo generalmente con una base de datos. En Java existen varias maneras de persistir un objeto entre las cuales se tiene las siguientes:
- Persistir un objeto a través del mecanismo de Serialización(proceso para convertir un objeto en una secuencia de bits) sobre un disco duro o a través de una conexión de red; permite obtener un formato independiente que puede ser re-usado en medio de diferentes sistemas operativos. Java provee un mecanismo estandarizado, simple y transparente para serializar objetos a través de la implementación de la interface java.io.Serializable. Sin embargo este mecanismo a pesar de ser muy simple no cuenta con un lenguaje de consulta o una infraestructura que soporte acceso concurrente a la información o clusterización.
- Otro mecanismo de persistencia es a través de JDBC (Java Database Connectivity), cual es el API estándar para gestionar base de datos relacionales. Permitiendo conectar la base de datos, ejecutar sentencias SQL tanto DML como DDL y obtener los resultados.
- A pesar de que JDBC es usado ampliamente ha sido desplazada por la utilización de los ORM(Object Relational Mapping) o capas de persistencia, cuya funcionalidad es permitir la representación de un modelo de datos en un modelo de objetos y facilitar las operaciones fundamentales de la base de datos a través de métodos; entre algunas de las capas de persistencia se tiene las siguientes Hibernate, EclipseLink, ToplLink siendo consideradas como otro mecanismo persistencia.
- Finalmente el esquema de persistencia estándar utilizada independientemente de la capa de persistencia se conoce con el nombre de Java Persistence API(JPA), y es el cual es utilizado para persistir los datos tanto en aplicaciones JEE como aplicaciones de escritorio.
certificationjava / java / jpa / martosfre / matoosfe / persistencia
miércoles, 6 de mayo de 2015
Error AbstractMethodError: com.microsoft.sqlserver.jdbc.SQLServerResultSet
mayo 06, 2015 martosfre
Estimad@s amigos, que gusto volver a postear algo luego de tanto tiempo perdido.... lamento no hacerlo. Estuve preparándome para unos exámenes de certificación de java y android... pero ya estoy de vuelta.
En esta oportunidad quiero compartirles la solución a un error que se presentó el día de hoy al subir a producción un módulo de pre-facturación que realice para un cliente. El escenario fue el siguiente:
Problema:
Al subir una aplicación desarrollada en RichFaces 3.4 en un servidor de aplicación glassfish 3.1 que utiliza JEE 5.0 con los motores de base de datos sqlserver 2008 y postgres 9.1, todo estuvo correcta hasta que se genero un reporte que utiliza un procesamiento muy fuerte en primera instancia sobre SQLServer a nivel de JDBC para un tema batch. Generandome el siguiente error:
Error SQLServerResultSet Driver JDBC SQLServer V1.0 |
Solución:
La solución al problema fue cambiar el driver de SQLServer que se tenia configurado en el Pool de Conexión, el cual era el sqljdbc.jar que correspondía a la versión 1.0 por el driver sqljdbc4.jar correspondiente a la versión 4. Debido a que en el driver inicial no se tenia el método isClosed() del objeto ResultSet.
miércoles, 21 de julio de 2010
ERP's, CRM's y HelpDesk Open source
julio 21, 2010 martosfre
Estimados amig@s volviendo nuevamente al mundo tecnológico les quiero compartir algunos recursos donde pueden consultar una lista de ERP's, CRM's y HelpDesk para su empresa.
Lista de programas helpdesk:
Lista de programas CRM/ERP
Espero les sea de ayuda!!!
Lista de programas helpdesk:
Lista de programas CRM/ERP
Espero les sea de ayuda!!!
lunes, 17 de mayo de 2010
SOAPUI + UBUNTU
mayo 17, 2010 martosfre
Ahora que necesite trabajar con WebServices descargue mi querido Soapui en su versión 3.5.1 para mi Ubuntu pero me tope con la sorpresa que al mandar a correr el soapui.sh no funcionaba. Para corregirlo hice lo siguiente:
Al realizar estos dos pasos efectivamente ya funciona.
- Cambie el archivo a modo ejecución aplicando el comando chmod +x soapui.sh ya que no viene por defecto.
- Luego descomente la linea JAVA_OPTS="$JAVA_OPTS -Dsoapui.jxbrowser.disable=true" ya que no funcionaba ninguna opción de la pantalla x trataba de ejecutarlo en un entorno web.
Al realizar estos dos pasos efectivamente ya funciona.
java / soapui / util / webservice
miércoles, 12 de mayo de 2010
Firma Digital Ecuador
mayo 12, 2010 martosfre
Actualmente en mi querido país Ecuador ya se soporta la firma digital, pero que realmente es?, como funciona? Vamos a revisarlo
Que es la firma digital?
Es un mecanismo tecnológico de seguridad que permite garantizar la autoría o integridad de documentos digitales.
Como funciona?
Al documento se aplica un procedimiento matemático complejo que genera clave para el documento el cual conjuntamente con la clave del firmante se cifra para forman la firma digital. La cual una vez obtenido se envia adjunta al mensaje original permitiendo que terceras personas pueden reconocer la identidad del firmante y asegurarse que el contenido no ha sido cambiado.
Para verificar una firma digital el receptor generará la clave de mensaje recibido, luego descifrará la firma digital utilizando la clave pública del firmante y obtendrá de esa forma la clave del documento original; si ambas claves coinciden significa que no hubo alteración y que el firmante es el correcto. A continuación se muestre un gráfico que explica el proceso (tomado wikipedia)
Actualmente la Subsecretaria de Informática han liberado un applet para realizar el proceso de firma digital que puede ser descargado y revisado aqui.
Que es la firma digital?
Es un mecanismo tecnológico de seguridad que permite garantizar la autoría o integridad de documentos digitales.
Como funciona?
Al documento se aplica un procedimiento matemático complejo que genera clave para el documento el cual conjuntamente con la clave del firmante se cifra para forman la firma digital. La cual una vez obtenido se envia adjunta al mensaje original permitiendo que terceras personas pueden reconocer la identidad del firmante y asegurarse que el contenido no ha sido cambiado.
Para verificar una firma digital el receptor generará la clave de mensaje recibido, luego descifrará la firma digital utilizando la clave pública del firmante y obtendrá de esa forma la clave del documento original; si ambas claves coinciden significa que no hubo alteración y que el firmante es el correcto. A continuación se muestre un gráfico que explica el proceso (tomado wikipedia)
Actualmente la Subsecretaria de Informática han liberado un applet para realizar el proceso de firma digital que puede ser descargado y revisado aqui.
lunes, 22 de marzo de 2010
JavaHL, Eclipse y Linux
marzo 22, 2010 martosfre
JavaHL es un API de alto nivel que se utiliza como puente entre código Java y librerías nativas. Debido a que el controlador de versiones Subversión trabaja con librerías nativas para conectarse con los clientes hace uso de JavaHL para conectarse desde Eclipse al cliente de svn y que Subeclipse el plugin utilizado esta escrito en Java es necesario conocer un poco más al respecto.
Una vez configurado el plugin dentro de Eclipse, cuando queremos abrir la perspectiva de SVN Repository Exploring puede que les ocurre un error con la versión de JavaHL utilizado siempre y cuando estes trabajando en Linux ya que en Windows vienen cargado y configurado la versión correcta de JavaHL, el error que aparece es el siguiente:
Cabe destacar que este error no afecta a las funciones de subversion como checkout, commit, etc. pero si resulta tedioso que aparezca cada que abres la perspectiva de SVN o una vista a fin. Para solucionarlo este incoveniente debemos elegir el kit de SVN en preferences : Team-->SVN-->Svn Interface como se muestra en la siguiente figura:
Con este cambio hecho reiniciamos Eclipse y listo!!!!.
Una vez configurado el plugin dentro de Eclipse, cuando queremos abrir la perspectiva de SVN Repository Exploring puede que les ocurre un error con la versión de JavaHL utilizado siempre y cuando estes trabajando en Linux ya que en Windows vienen cargado y configurado la versión correcta de JavaHL, el error que aparece es el siguiente:
Cabe destacar que este error no afecta a las funciones de subversion como checkout, commit, etc. pero si resulta tedioso que aparezca cada que abres la perspectiva de SVN o una vista a fin. Para solucionarlo este incoveniente debemos elegir el kit de SVN en preferences : Team-->SVN-->Svn Interface como se muestra en la siguiente figura:
Con este cambio hecho reiniciamos Eclipse y listo!!!!.
jueves, 3 de septiembre de 2009
Que es , arquitectura y como funciona SpringBatch?
septiembre 03, 2009 martosfre
Que gusto poder volver a los tiempos a postear algo....con esto del cambio a nuevo trabajo y las clases en la poli me han alejado un poco. Pero ya estoy de vuelta y espero no alejarme....
En todo proyecto de misión crítica( ejm. instituciones bancarias, financieras etc.) donde se necesita realizar varios procesos de de negocio con grandes volúmenes de datos una vez acabo el período de trabajo como son la consolidación de los mismos, cierres de cajas etc es muy necesario contar con procesos batch que ejecuten estos procesos eficientemente de una forma controlada sin necesidad de la participación del usuario ya que por lo general son realizados nocturnamente y toman un tiempo considerable.
Por la misma concepción de lo que representa un proceso batch muchas empresas han adoptado realizarlo directamente en la bdd sin utilizar programas adicionales que retardarían el mismo en la sola recuperación y disposición de los datos, otras han construído sus propios programas y otros como en mi caso estamos tratando de encontrar una solución "diferente" o mixta para lo cual en este post les voy a hablar de un framework llamado SpringBath el cual pretendo utilizar para encaminar mi requerimiento.
SpringBatch
Es un framework open source que permite simplificar el desarrollo de procesos batch de una manera eficiente , robusta y escalable. Entre las características que tiene el framework podemos describir las siguientes:
Arquitectura
Funcionamiento
El funcionamiento de SpringBatch puede resumirse en el siguiente diagrama:
En donde:
JobLauncher: Representa una interfaz que permite ejecutar la tarea para lo cual recibe parámetros (JobParameters)
Job: Es la entidad que encapsula todo el proceso batch, el cual representa un conjunto de pasos (Steps)
Step: Es un objeto del dominio que encapsula un independiente y secuencial pase de un proceso batch, el cual contiene toda la información necesaria para controlar el proceso batch.
Job Repository: Es el mecanismo persistente que provee todas las operaciones CRUD para el JobLauncher, Job y implementaciones de pasos.
Item Reader: Representa las diferentes entradas los cuales pueden ser en varios formatos como archivos, xml, base de datos los cuales pueden deben ser proveídos uno a la vez.
ItemWritter: Representa la salida para el Step el cual es uno a la vez, es similar al Item Reader pero de forma inversa
ItemProcessor: Represeanta el procesamiento de negocio de un item.
Este representa un resumen pequeño que puede servir para dar una noción acerca de SpringBatch, en el próximo post trataré de describir el proceso técnico espero que les sirve de referencia.
Saludos, dios los bendiga
En todo proyecto de misión crítica( ejm. instituciones bancarias, financieras etc.) donde se necesita realizar varios procesos de de negocio con grandes volúmenes de datos una vez acabo el período de trabajo como son la consolidación de los mismos, cierres de cajas etc es muy necesario contar con procesos batch que ejecuten estos procesos eficientemente de una forma controlada sin necesidad de la participación del usuario ya que por lo general son realizados nocturnamente y toman un tiempo considerable.
Por la misma concepción de lo que representa un proceso batch muchas empresas han adoptado realizarlo directamente en la bdd sin utilizar programas adicionales que retardarían el mismo en la sola recuperación y disposición de los datos, otras han construído sus propios programas y otros como en mi caso estamos tratando de encontrar una solución "diferente" o mixta para lo cual en este post les voy a hablar de un framework llamado SpringBath el cual pretendo utilizar para encaminar mi requerimiento.
SpringBatch
Es un framework open source que permite simplificar el desarrollo de procesos batch de una manera eficiente , robusta y escalable. Entre las características que tiene el framework podemos describir las siguientes:
- Procesamiento batch concurrentes (paralelos)
- Procesamiento batch secuenciales (pasos)
- Procesamiento batch masivo
- Restauración manual o planificado luego de una falla
- Procesamiento parcial
- Procesamiento transaccional
- Procesamiento batch planificado (utiliza frameworks scheduler como Quartz)
Arquitectura
Funcionamiento
El funcionamiento de SpringBatch puede resumirse en el siguiente diagrama:
En donde:
JobLauncher: Representa una interfaz que permite ejecutar la tarea para lo cual recibe parámetros (JobParameters)
Job: Es la entidad que encapsula todo el proceso batch, el cual representa un conjunto de pasos (Steps)
Step: Es un objeto del dominio que encapsula un independiente y secuencial pase de un proceso batch, el cual contiene toda la información necesaria para controlar el proceso batch.
Job Repository: Es el mecanismo persistente que provee todas las operaciones CRUD para el JobLauncher, Job y implementaciones de pasos.
Item Reader: Representa las diferentes entradas los cuales pueden ser en varios formatos como archivos, xml, base de datos los cuales pueden deben ser proveídos uno a la vez.
ItemWritter: Representa la salida para el Step el cual es uno a la vez, es similar al Item Reader pero de forma inversa
ItemProcessor: Represeanta el procesamiento de negocio de un item.
Este representa un resumen pequeño que puede servir para dar una noción acerca de SpringBatch, en el próximo post trataré de describir el proceso técnico espero que les sirve de referencia.
Saludos, dios los bendiga
batch / java / opensource / spring
jueves, 2 de julio de 2009
Problemas con Transformador XML + JAVA + Toplink
julio 02, 2009 martosfre
Hay días en los que buscas y buscas la solución a un problema, te inventas diez mil y una formas para que luego!!!! nada el mismo error.....a todos nos pasa, el problema muchas veces radica en el cansancio que nos desvia la mente del objetivo final, hoy fue uno de esos días.
Bueno el problema radico en que estoy haciendo la migración de la capa de persistencia PersistenceManager a Toplink y me tope con un problema de transformación de los XML, para no hacerles largo el relato el código que tenía era este.
javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = tFactory.
newTransformer(new javax.xml.transform.stream.StreamSource(new File(URLXSLT)));
javax.xml.transform.dom.DOMSource xmlDoc = new javax.xml.transform.dom.DOMSource(doc);
transformer.transform(xmlDoc, new javax.xml.transform.stream.StreamResult(new java.io.File(path)));
Cabe aclarar que todo funcionaba bien hasta que comence con Toplink, como Toplink implementa unas nuevas librerías para el manejo de xml como son xml.jar y xmlparserv2.jar (parseador) pense que podría haber alguna incopatibilidad colocando las dos en el classpath, hice las pruebas respectivas y nada, cambie de parseadores y seguia saliendo el mismo error:
javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = tFactory.
newTransformer(new javax.xml.transform.stream.StreamSource(new File(URLXSLT)));
javax.xml.transform.dom.DOMSource xmlDoc = new javax.xml.transform.dom.DOMSource(doc);
transformer.transform(xmlDoc,
new javax.xml.transform.stream.StreamResult(new java.io.File(path).toURI().getPath()));
Como pueden apreciar la solución fue en cambiar la forma de llamar al archivo, estoy investigando porque se produjo esto. Talvéz la especificación de toplink asi lo requiere ya que utiliza nuevos jar y actualizaciones de los tipicos xalan y xerces, en todo caso ya les comentaré
Espero les sirve y que alegría salió esta situación.............seguimos en migración.
Bueno el problema radico en que estoy haciendo la migración de la capa de persistencia PersistenceManager a Toplink y me tope con un problema de transformación de los XML, para no hacerles largo el relato el código que tenía era este.
javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = tFactory.
newTransformer(new javax.xml.transform.stream.StreamSource(new File(URLXSLT)));
javax.xml.transform.dom.DOMSource xmlDoc = new javax.xml.transform.dom.DOMSource(doc);
transformer.transform(xmlDoc, new javax.xml.transform.stream.StreamResult(new java.io.File(path)));
Cabe aclarar que todo funcionaba bien hasta que comence con Toplink, como Toplink implementa unas nuevas librerías para el manejo de xml como son xml.jar y xmlparserv2.jar (parseador) pense que podría haber alguna incopatibilidad colocando las dos en el classpath, hice las pruebas respectivas y nada, cambie de parseadores y seguia saliendo el mismo error:
javax.xml.transform.TransformerException: java.io.FileNotFoundException
Luego de implementar nuevos parser, abrirme jar y reemplementar cosas... buscar en internet full tiempo comence a ver otra forma de llamar al archivo (ojó que esto actualmente en la versión que se maneja del sistema funciona bien tal y como esta) y efectivamente por alguna extraña razón el problema radicaba aquí. Esta fue la solución:javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = tFactory.
newTransformer(new javax.xml.transform.stream.StreamSource(new File(URLXSLT)));
javax.xml.transform.dom.DOMSource xmlDoc = new javax.xml.transform.dom.DOMSource(doc);
transformer.transform(xmlDoc,
new javax.xml.transform.stream.StreamResult(new java.io.File(path).toURI().getPath()));
Como pueden apreciar la solución fue en cambiar la forma de llamar al archivo, estoy investigando porque se produjo esto. Talvéz la especificación de toplink asi lo requiere ya que utiliza nuevos jar y actualizaciones de los tipicos xalan y xerces, en todo caso ya les comentaré
Espero les sirve y que alegría salió esta situación.............seguimos en migración.
lunes, 29 de junio de 2009
Usando Perl con /
junio 29, 2009 martosfre
Luego de terminar una implementación nueva de reportes realizada en java utilizando un servidor de reportes llamado Crystal Clear, el siguiente paso consistía en cambiar la llamada del viejo servidor por el nuevo. Lo cual involucraba cambiar cierta [cadena1] por [cadena2] en cada uno de los archivos, que eran muchos y que residian en un servidor web Tomcat localizado en un RedHat.
Para realizar esta tarea utilice el comando perl con las diferentes opciones que tenía pero en pleno proceso ocurrió un error, el cual era que mis cadenas contenían el caracter / que daba inconvenites en la búsqueda del patrón. Mi primer intento fue este.
Pero no tuve éxito ya que el caracter / no era reconocido con un separador de la expresión, por lo cual la siguiente opción fue utilizar el caracter de escape que era el backslahe \ quedando el comando de la siguiente forma:
Para realizar esta tarea utilice el comando perl con las diferentes opciones que tenía pero en pleno proceso ocurrió un error, el cual era que mis cadenas contenían el caracter / que daba inconvenites en la búsqueda del patrón. Mi primer intento fue este.
perl -e s//matoosfe//matoosfe_company/g -pi.bak *.xsl
Pero no tuve éxito ya que el caracter / no era reconocido con un separador de la expresión, por lo cual la siguiente opción fue utilizar el caracter de escape que era el backslahe \ quedando el comando de la siguiente forma:
perl -e s/\/matoosfe/\/matoosfe_company/g -pi.bak *.xsl
Pero tenia errores al ejecutarlo, asi que la solución que encontre fue cambiar el caracterer separador de la expresión / por otro en mi caso utilice ¡, pudiendo utilizarse cualquier otro excepto los utilzados por gnu-linux en operaciones bash como el ! por ejemplo. Aclarando esto mi comando quedo de la siguiente manera:
Para terminar el comando ejecutado anteriormente lo que hace es cambiar la cadena /matoosfe por la cadena /matoosfe_company en todo el directorio en todos los archivos con extensión .xsl y sacar un respaldo del archivo cambiado con extensión .back .
Espero les sea de mucha utilidad
perl -e s¡/matoosfe¡/matoosfe_company¡g -pi.bak *.xsl
Para terminar el comando ejecutado anteriormente lo que hace es cambiar la cadena /matoosfe por la cadena /matoosfe_company en todo el directorio en todos los archivos con extensión .xsl y sacar un respaldo del archivo cambiado con extensión .back .
Espero les sea de mucha utilidad
miércoles, 24 de junio de 2009
Evolución de Eclipse Ganymedes: Galileo
junio 24, 2009 martosfre
El día de hoy 24 de Junio del 2009 se lanzado la versión oficial de Eclipse Galileo la cual es la versión mejorada de Ganymedes que comprende alrededor de 33 proyectos como Mylyn, Equinox, PHP Development Tools, Memory Analizer, SOA Tools etc.
Las mejoras de Galileo van en tres sentidos:
- Mejoras en las caracteristicas imprescindibles a nivel empresarial con el objetivo de expandir su adopción, entre estas tenemos: Memory Analizer, XSL Tooling, PHP Development Tools, Birt
- Innovación del modelo tecnológico, las innovaciones que se incluyen son : Xtext, Connected Data Object
- Mejoramiento de la Tecnología de Runtime, entre estas tenemos: Equinox, RAP, RCP, Riee
Las diferentes versiones de Galileo pueden descargarse aquí
martes, 23 de junio de 2009
Cadenas Conexión JDBC
junio 23, 2009 martosfre
Mientras revisa algunos temitas en la web, encontre un recurso sumamente útil en lo que se refiere a configurar las cadenas de conexión para las diferentes bases de datos utilizando JDBC. En la siguiente dirección podrán encontrar las configuraciones de JDBC para las bases de datos MySQL, Postgress, SQL Server.
A causa de que falta la configuración para Oracle les comporta a continuación:
Oracle
Driver Class: oracle.jdbc.driver.OracleDriver
Defautl Port: 1521
JDBC URL:
jdbc:oracle:thin:@machine: port:SID
jdbc:oracle:thin:user/pass@machine:port/SID
Espero les sea de gran utilidad
viernes, 19 de junio de 2009
Programa Certification SCJP
junio 19, 2009 martosfre
Hola amig@s les quiero informar que a partir de la siguiente semana se estará publicando notas y recursos importantes acerca de la CERTIFICACION DE JAVA SCJP para que las personas que están interesadas en seguirla.
jueves, 2 de abril de 2009
BarCampQuito09: Tecnologia Java
abril 02, 2009 martosfre
Hola amig@s a petición de la gente que le interesó la conferencia de Java que presente en el BarCampQuito y a razón de que en el Slides no aparece mis diapositivas al igual de muchos los que expusimos en la sala 2 (o todavía no se cargan) específicamente les quiero compartir aquí en mi blog.
Espero les sea de mucha ayuda, saludos
Espero les sea de mucha ayuda, saludos
viernes, 27 de marzo de 2009
JUG ECUADOR
marzo 27, 2009 martosfre
Un sueño que está comenzando, una idea que ya se llevado y se sigue llevando en muchos países del mundo. Pero de que realmento estoy hablando? su nombre es JUGECU el cual es el grupo de usuarios java en Ecuador.
JUGECU nace como la necesidad de reunir a todos las personas interesadas, novatas, experimentadas en en tecnología JAVA con el objetivo de compartir, aprender, exponer su conocimiento a toda la comunidad de tal forma de convertirse en un soporte en el aprendizaje y crecimiento de las empresas, comunidades, personas en el Ecuador.
Actualmente estoy organizando esta iniciativa, sueño que no solo representa el mio sino el de muchos que creemos que existe un potencial sumamente interesante en el Ecuador y que queremos sacar adelante al país, les invitó a visitar la página del sitio http://jugecu.blogspot.com/ e inscribirse en el grupo de usuarios, actualmente estamos 15 personas entre personas, empresas tu también puedes ser una de ellas.
Dios los bendiga, y que recuerden que el que persevera alcanza no importa que tan difícil parezca o sea nuestro ideal
JUGECU nace como la necesidad de reunir a todos las personas interesadas, novatas, experimentadas en en tecnología JAVA con el objetivo de compartir, aprender, exponer su conocimiento a toda la comunidad de tal forma de convertirse en un soporte en el aprendizaje y crecimiento de las empresas, comunidades, personas en el Ecuador.
Actualmente estoy organizando esta iniciativa, sueño que no solo representa el mio sino el de muchos que creemos que existe un potencial sumamente interesante en el Ecuador y que queremos sacar adelante al país, les invitó a visitar la página del sitio http://jugecu.blogspot.com/ e inscribirse en el grupo de usuarios, actualmente estamos 15 personas entre personas, empresas tu también puedes ser una de ellas.
Dios los bendiga, y que recuerden que el que persevera alcanza no importa que tan difícil parezca o sea nuestro ideal
Suscribirse a:
Entradas (Atom)