Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

¿Eres nuevo? ¿Cómo hacer que tus preguntas tengan mas posibilidades de ser respondidas?

Es normal que un usuario al tener un problema con algún programa quiera obtener ayuda de la comunidad y se disponga a escribir en algunos de los foros. Pero, ¿Que pasa cuando al crear el tema este queda como si hubiera sido escrito por un niño de 5 años?
Aquí daré unos tips sobre como hacer que tu pregunta tenga mas chance de ser respondida, mas rápido y con mas ganas de ayudarte por parte de la comunidad.
El mismo propósito de este tema puede parecer innecesario y/o inservible, por varias razones. Pero hay un motivo que me impulsa a hacerlo: me he dado cuenta de que la mayoría de las personas no saben como redactar una pregunta.

¿Has desarrollado una aplicación para facturación electrónica?

Uno generalmente madura con el tiempo y muchas de las ideas que tiene uno cambian con el tiempo. A mi siempre me ha parecido fabulosa la ideologia del open source, donde la gente colabora por el mero gusto de hacerlo, pero bueno eso es harina de otro costal.

Me gustaria saber en particular cuantos de ustedes han implementado sistemas de facturación electrónica, ya sea para venta directa a un cliente o como parte de su trabajo para una empresa. Ultimamente he sabido de bastantes PAC's que estan cerrando su negocio por falta de clientes y estan quedando solo algunos monstruos. La pregunta que yo siempre me he hecho es, ¿por que el SAT no brinda un web service para tal fin en lugar de hacernos pagar cada timbre? Su infraestructura ya muy decente a comparación de hace años que empezó, entonces, ¿no sería logico que se volviera gratuito?.

Saludos.

Seguridad en aplicaciones WEB

Hola!

A lo largo de mi trayectoria siempre he trabajado con frameworks comos spring, struts, hibernate, etc.

Hoy día me encuentro con algo nuevo, implementar una aplicación web usando estandarés de JEE 7 y me he encontrado con un problema, no he podido implementar la seguridad, he leído en varios lugares sobre JAAS, pero no me encuentro mucha ayuda (a diferencia de spring-security).

Alguién ya lo ha podido implementar en aplicaciones WEB?

HSTS en Spring Security y por qué deberías de conocerlo

Introducción

El uso de librerías y marcos de trabajo terceros, si bien facilitan el trabajo por las abstracciones que proveen, conllevan como tal un cierto nivel de riesgo. El riesgo puede ser manifestado como tener que modificar parte del código en nuevas versiones del marco de trabajo, que deje de existir o dar soporte u opciones por defecto que pueden causar efectos secundarios. De lo que les escribiré en este artículo es de esto último, una opción por defecto que tiene habilitada el marco de trabajo de Spring Security a partir de la versión 3.2.0 la cual, al usarla en conjunto con “click tracking” (rastreo de clics) en los correos electrónicos puede causar un problema. Esta opción por defecto es el encabezado de HSTS.

Como Convertir un archivo XML a Sql

Buenos dias
tengo una duda como se puede convertir un archivo XML a sql en java pero sin librerías
Ya lo intente de muchas formas y no me sale

Kotlin, parte 3: Métodos de extensión y sobrecarga de operadores

Kotlin permite la sobrecarga de operadores, como Scala y C++, pero de manera controlada, como Groovy. Es decir, no se pueden definir operadores de manera arbitraria como en Scala, donde se puede definir un método ~->, pero sí se pueden tener métodos que se puedan invocar con operadores como +, -, *, [] etc.

Es curioso que siendo un lenguaje con tipado estático, no se fueron por el camino "limpio" para implementar esto, que era definir interfaces para los operadores (por ejemplo, Summable, o Plus, Minus, etc), sino que lo implementaron de igual manera que en Groovy, sólo que pues en Groovy funciona porque es un lenguaje dinámico. Esto presenta dos problemas: primero, que hay que saberse muy bien cuáles son los operadores que se pueden sobreescribir, junto con los nombres de los métodos correspondientes, los cuales no siempre son obvios a la hora de estar implementado uno (Para usar / ¿es divided, quotient, div o qué?) y el otro, que es más difícil saber si una clase tiene operadores sobrecargados o no, ya que hay que revisar los métodos que implementa, en vez de simplemente revisar las interfaces que implementa, y honestamente es más fácil simplemente hacer prueba y error (a ver si funciona si le pongo un +).

Kotlin, parte 2: (not so) typesafe null y otras monerías

Una característica importante de Kotlin es que maneja seguridad en nulos. Esto es algo que varios lenguajes han estado implementando últimamente, porque ahorra muchos dolores de cabeza.

Normalmente, una variable de cualquier tipo que sea objeto, acepta null. En Kotlin no es así; para que una variable acepte null, se necesita especificar de esa forma. Esto no compila:

var x:String = "hola"
x = null

Porque x ha sido definida como de tipo String, y no acepta nulos. Para que acepte nulos, se tiene que definir así:

var x:String? = "hola"
x = null

Los tipos opcionales se pueden usar en parámetros de funciones, tipos de retorno y declaraciones locales.

Cuando se tiene un valor que puede ser null, no se puede usar de manera directa. Hay que verificar que el objeto exista; esto se puede lograr de varias formas:

var x:String? = "hola"
if (x != null) {
  //Aquí dentro, x ya se considera String
  println(x.length)
}
val largo = x?.length //largo será tipo `Int?`
//Se puede usar el operador "Elvis" con tipos opcionales
println(x ?: "no hay x")

Kotlin: El nuevo lenguaje del emperador (1 de 3)

Hace unas semanas, Google anunció con bombo y platillo que ya soportan oficialmente Kotlin en Android. Para mucha gente, esta fue la primera vez que escucharon algo acerca del lenguaje y, como era de esperarse, a partir de ese momento han salido supuestos expertos en Kotlin hasta debajo de las piedras, ofreciendo seminarios y cursos y demás.

Yo llevo unos años siguiéndole la pista a Kotlin medio de lejos, por mi trabajo en Ceylon; así que creo que es un buen momento para contarles mi opinión al respecto. No les voy a decir si deben usar Kotlin o no; escribo esto porque estoy seguro que muchos lo van a probar y probablemente lo empiecen a usar en proyectos reales, pero tal vez por razones muy simples como la sintaxis o que si no tiene punto y coma o, simplemente, porque no es Java (esta es la razón más popular por la que recibió tan cálida bienvenida en el mundo de Android).

Manejo de XML

Buen día a todos soy nuevo en esto de java, quisiera saber si me podrian apoyar, quisiera saber cual o cuales son las mejores librerias para poder crear y leer xml, se que existe JAXB que nos permite convertir un objeto a xml y viceversa, sin embargo me gustaria su opinion al respecto que otras herramientas o librerias podria utilizar?

Saludos

Optimizar aplicacion web realizada con JSF, ICEFACES

Buenas amigos:

Este es mi primer post y acudo a los expertos esperando me puedan ayudar con un tema que tengo desde hace algunas semanas.

Tengo una aplicacion web realizada con JSF, ICEFACES y postgresql, el número máximo de usuarios que se conectan simultaneamente son 200, pero incluso con 10 personas, el sistema se a vueto lentisimo, lo raro de todo es que yo lo he usado en PC sin problemas pero los usarios se quejan de la lentitud, y sale muy seguir el error de "CONEXIÓN DE RED INTERRUMPIDA", incluso aunque el internet este estable,

Ahora bien tratando de mejorar la conexion a la base de datos, cambie el datasource con algunos parametros y el problema empeoro.

Aqui viene mi pregunta, ¿como podria mejorar el rendimiento de mi aplicación para que pueda ser más rapida y estable?

Le paso el código del datasource. No tengo mucha experiencia manejando pool de conexiones, pero este es el que implemente, espero me pueda ayudar a optimizar. De antemano muchas gracias!

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
                destroy-method="close">
                <property name="driverClassName" value="${jdbc.driverClassName}" />
Distribuir contenido