Java Enterprise
Transformación de clases al vuelo con Javassist
Posted Marzo 9th, 2010 by ezamudioEn esta ocasión quiero describir un proceso un tanto complicado, que puede servirle a alguien tal vez, si se encuentran en la necesidad de hacer algo locochón como lo que tuve que hacer yo.
En términos generales, me encontré en la necesidad de agregar anotaciones a clases, en tiempo de ejecución. Es decir, una clase que no tiene ciertas anotaciones, porque no fue compilada así, necesita que se las agreguemos a la hora de correr una aplicación. Esto fue posible gracias a Javassist, una biblioteca de software libre que sirve precisamente para transformar clases en tiempo de ejecución, pero aún así el código y la manera de hacerlo es algo complejo.
Primero que nada, necesitamos el JAR donde se encuentra la clase que queremos modificar. Dependiendo del tipo de aplicación, la manera de obtener el JAR va a variar, pero lo importante aquí es que tengamos al final un InputStream del cual vamos a leer la clase. Una vez que tenemos el InputStream, debemos ir leyendo del JAR hasta obtener el archivo que queremos (un .class).
- blog de ezamudio
- Inicie sesión o regístrese para enviar comentarios
- Leer más
Y tu... le presentas al usuario mensajes de error claros y contextualizados?
Posted Febrero 17th, 2010 by luxspesReglas de Integridad
Cuando los datos se modifican con sentencias INSERT, DELETE o UPDATE, su integridad puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible para vender.
Para evitar que la integridad de los datos se pierda, se pueden definir reglas que se encargaran de protegerla. Estas reglas pueden definirse en distintos niveles del código de la aplicación:
Hyperic HQ Open Source Edition: Open Source Monitoring and Management
Posted Febrero 17th, 2010 by ecorroGreat Software Backed Up by an Active Community
Hyperic HQ is an open source monitoring software designed to manage web applications and infrastructure. Hyperic HQ's unique ability to automatically discover and monitor software and network resources, regardless of type or location, gives you a unified view of the performance and health of your applications. Use HQ's comprehensive suite of tools to track performance and event data, create complex alerts, run diagnostics, and issue control actions from a single remote console.
With built-in support for more than 75 technologies, an extensible framework and user interface, and support for both virtualized and non-virtualized infrastructures, Hyperic is the standard for web and IT operations teams of all sizes.
There are two editions of Hyperic HQ. The open source edition, licensed under GNU GPL v2, provides all fundamental capabilities for managing web applications. Powerful, reliable, and free, open source HQ is supported by a vibrant community of web operations professionals.
More information at:
http://www.hyperic.com/products/open-source-systems-monitoring.html
"Aplicaciones" Web: Ni el foco pueden controlar!
Posted Febrero 10th, 2010 by luxspesEn Swing se puede navegar de un componente a otro usando las teclas Tab o Shift-Tab. Estas teclas son las "teclas de recorrido de foco" (focus traversal keys) y pueden ser cambiadas programaticamente. Por ejemplo, tu puedes agregar la tecla Enter a la lista de teclas de recorrido de foco con el siguiente codigo:
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
Set newForwardKeys = new HashSet(forwardKeys);
newForwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
newForwardKeys);
Y eso es todo, asi de facil se puede usar Enter en ves de tab para mover el foco al siguiente elemento. Simple no? Ahora trata de hacerlo con JavaScript en una forma de HTML:
No se puede. O tal ves si, pero nadie sabe como.
Hay algunas soluciones parciales, por ejemplo, esto solo funciona en IExplorer:
Aplicacion Swing con JDBC
Posted Febrero 8th, 2010 by kyo3556Esta entrada es para presentar este proyecto que realizare como residencias (practicas), profesionales. Como dice arriba utilizare una interfaz grafica (java.swing) y varios controladores JDBC (mysql, oracle y sybase) para realizar las operaciones basicas (insertar, borrar, actualizar, etc.).
Me gustaria conocer sus comentarios o diversos puntos de vista sobre controladores, sobre todo de oracle y sybase, ya que no tengo experiencia con estos gestores de bd. Por ultimo, tambien les pediria que me recomienden documentacion sobre estos temas.
Lo que tengo:
-> el libro de Deitel, Como programar en Java, 5ta edicion, ya he leido los 2 capitulos de intefaz grafica y el de JDBC
->O'Reilly - Database Programming with JDBC and Java 2nd Edition, Apenas lo estoy leyendo
->Expert Oracle JDBC Programming, Todavia no lo he leido
Uso netbeans 6.8, recien descargado e instalado. Ya hize la aplicacion principal en netbeans, instale el driver de mysql y tambien ya pude conectarme y obtener las filas en un jtextarea, estoy en el proceso para implementar lo de borrar y actualizar.
NetBeans vs JDeveloper en JEE
Posted Febrero 4th, 2010 by arturotenaDice Oracle:
Will NetBeans replace JDeveloper as Oracle's Strategic IDE?
No, although NetBeans is a very capable and well featured development environment there are no plans for it to replace Oracle JDeveloper. Oracle JDeveloper will continue to be an end-to-end enterprise development environment including Java, Java EE, XML, enterprise portal development, SOA development and orchestration and database development. NetBeans will be a choice for developers looking for an open-source, full-featured Java SE/EE/Mobile/FX/TV environment. This aligns well with Oracle's "Productivity with Choice" vision. (http://www.oracle.com/technology/tech/java/htdocs/javatoolsfaq.html)
Entiendo entonces que, para Oracle, NetBeans no es capaz de ser un IDE empresarial. Esto es un grave error, pues muchos comemos gracias a que NetBeans permite hacer aplicaciones para JEE. Ojalá la comunidad continúe desarrollando la parte empresarial de NetBeans.
Jugando con Restlet y Astoria
Posted Febrero 4th, 2010 by willyxoftTras leer el artículo Como crear aplicaciones en Java que puedan conectarse con .NET me di a la tarea de realizarlo sin mayores problemas (una vez aclarado que la versión de Restlet a utilizar es la 2.0 y agregar la tabla Categories al modelo de Entity Framework).
Mas al tratar de extender el ejemplo proporcionado para realizar el resto de las operaciones CRUD (apoyándome en el Tutorial de Restlet WCF Data Services extension) tuve algunos problemas.
Al principio el problema era la línea en el servicio Astoria:
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);Misma que cambie a:
config.SetEntitySetAccessRule("*", EntitySetRights.All);Con ello logré que al menos me permitiera el Borrado de entidades, pero seguía teniendo problemas para la Actualización y Creación. Este problema no lo tengo en un cliente similar hecho con .NET, donde si puedo realizar todas las operaciones.
Oracle + Sun
Posted Enero 28th, 2010 by willyxoft
El día de ayer, Enero 27 de 2010, Oracle anunció terminada su adquisición de Sun.
Oracle nos invita a ver su serie de Webcast sobre la estrategia de productos Oracle + Sun, en los cuales podremos conocer mas acerca de la combinación Sun y Oracle y de lo que ello significará para nosotros.
Mayor información en: oracle.com/us/sun
SOFTWARE STRATEGY WEBCASTS
- Java
- Operating Systems
- Virtualization
- Cloud
- Enterprise Manager and Ops Center
- Identity Management (Coming soon - 2/1/10)
- Application Server
- Developer Tools
- SOA (Coming soon - 2/1/10)
- OpenOffice
Como crear aplicaciones en Java que puedan conectarse con .NET
Posted Enero 26th, 2010 by jaimesanchezCuando platique con @xbenek sobre crear un puente de interoperabilidad entre tecnologías Microsoft y Java, lo primero que me paso por la mente fue el pensar en los problemas había tenido o que había escuchado cuando la gente estaba teniendo proyectos de este tipo, uno de los principales era el acceso a las clases y objetos que estaban generados en .NET y la otra era el acceso a los datos en sí, una manera de solucionar este dilema es usando por el lado de .NET el Entity Framework que te permite exponer clases y entidades en formato ATOM o JSON usando REST y por parte de Java Restlet que te permite acceder a este tipo de servicios.
Existen varios proyectos que pueden verse beneficiados de arquitecturas como REST (Representational state transfer) donde la idea principal está en la manera en la que se hacen las peticiones al Servidor desde el cliente, las peticiones se hacen basadas en el recurso que te interesa, por ejemplo si quieres ver los productos de una tienda de la categoría bebidas, debería de ser suficiente con ir a la página http://latienda/productos/bebidas o si quisieras ver todas las cervezas podrías ir a http://latienda/productos/bebidas/cervezas el servidor es el que se encarga de encontrar el recurso adecuado a lo mejor lo que hace es buscar la página cervezas.htm entonces si pensamos que cervezas.htm es la representación de un recurso sin embargo el cliente esta accediendo a un sitio diferente, lo que hace el servidor es transferir el estado del recurso para poderse adaptar a la solicitud que esta haciendo el cliente, –>Transferencia Representacional de Estado (REST).
La arquitectura de REST tiene que cumplir con estos 6 principios.
Cliente-servidor
Capaces de almacenarse en caché
Agregando Epiciclos?: Java todavia tiene futuro?
Posted Enero 21st, 2010 by luxspesVas a construir una nueva aplicación.. si eres como yo alguien que disfruta de las ventajas de la reutilizacion que te dan los proyectos opensource, y te estan pidiendo la tipica aplicacion web que tanto se acostumbra en estos tiempos... que haces?
Pues desde el principio ya estas pensando: Spring (o Weld si queres probar algo mas nuevo) para integrarlo todo, JPA para guardar en la base de datos... JSF, Wicket o Tapestry para la interfaz... y si tengo que poner mucha interactividad con Javascript? pues DWR!
Y construyes tu aplicación... Inclusive escribes un script de Ant para poder generar el .war que subiras (de forma tambie automatizada) al servidor de produccion...
Ignoremos por un momento los problemas que hayan podido surgir durante el desarrollo, y pensemos que llego el dia de finamente entrar "en produccion":
Comentarios recientes
hace 2 horas 32 mins
hace 10 horas 17 mins
hace 11 horas 44 mins
hace 16 horas 17 mins
hace 16 horas 55 mins
hace 1 día 8 horas
hace 1 día 14 horas
hace 1 día 14 horas
hace 1 día 15 horas
hace 1 día 15 horas