style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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.

Spring MVC ... primer ejemplo (REST)

Para este ejemplo crearemos una base de datos (yo uso postgresql) llamada proyecto, agregaremos una tabla usuario con los siguientes campos: id, nombre, password, logeado y area.

CREATE TABLE public.usuario
(
    id INTEGER NOT NULL,
    nombre CHARACTER VARYING NOT NULL,
    password CHARACTER VARYING  NOT NULL,
    logeado BOOLEAN,
    area CHARACTER VARYING,
    CONSTRAINT usuario_pkey PRIMARY KEY (id)
);

Ahora agregaremos unos datos:

INSERT INTO public.usuario(
        id, nombre, password, logeado, area)
        VALUES (1, 'Antony Yung', '00T$@l12', TRUE, 'sistemas'),(2, 'Adrian Uribe', '3EvBb00', FALSE, 'administracion'),
    (3,'Ernestina Pedroza','@22GgHQll',TRUE,'recursos humanos');

Una vez creado la base de datos y su correspondiente tabla nos enfocaremos a crear el ejemplo con Spring MVC.

¿Qués es lo que ncesitaremos?

  1. Archivo: build.gradle , para configurar las dependencias necesarias

Error al guardar Backups MySQL en Java

Buen día,
Tengo un formulario en Java que tiene dos botones: Seleccionar y Guardar. Estos ejecutan un código para seleccionar el destino y guardar el archivo.sql, respectivamente. La cosa es que el archivo.sql solo lo guarda en Escritorio y en Documentos y en el disco C, en otros destinos como carpetas que yo tengo en escritorio o carpetas que tengo en mi partición D, no lo guarda; no me da error el código, voy a mirar la carpeta donde guardé y no está el archivo. ¿ A qué se deberá esto?
Mi código de Seleccionar es:

JFileChooser jfc = new JFileChooser();
        jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int select0 = jfc.showSaveDialog(this);
        if (select0 == JFileChooser.APPROVE_OPTION) {
            String ruta = jfc.getSelectedFile().getPath();
            jTextField1.setText(ruta);
        }

El de Guardar:

String ruta = jTextField1.getText();
        String nombre = "\\RespaldoBD.sql";
        String backus = "";
        if (ruta.trim().length() != 0) {
            try {

Crear sello de CFDI con java

El sello de un CFDI es en realidad la firma electrónica de algunos campos en conjunto(cadena original) del CFDI. La firma digital brinda varios servicios de seguridad:

  • No repudio. La entidad que emite el CFDI no puede rechazar que ella/él lo emitió puesto que en teoría sólo ella/él conoce la llave privada y nadie mas.
  • Autenticación. Al verificar la firma de un CFDI sabemos quién lo emitio ya que se utiliza la correspondiente llave pública del emisor. En Criptografía de llave pública,
    siempre existen un par de llaves, la pública y privada, las cuales sirven para cifrar y descifrar el mensaje.
  • Integridad. Al firmar el CFDI se realiza un subproceso que genera una cadena única, producto del uso de funciones hash. Si se altera el documento posteriormente o al menos los
    campos que se uilizan para generar la cadena original, la cadena única generada debe cambiar completamente y el resultado de la firma será diferente a la original.

Hay dos procesos principales en la generación del sello:

Creación de cadena original CFDI 3.3 con java

Pasos para creación de la cadena original del CFDI 3.3:

1. Tener anotadas las clases con javax, como en el blog.
2. Obtener el archivo cadenaoriginal_3_3.xslt del SAT.
3. Generar la cadena original con el siguiente código:

...
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.util.JAXBSource;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
...

JAXBContext jaxBContext = JAXBContext.newInstance("mx.gob.sat.v33"); //El paquete donde se encuentra la clase Comprobante
StreamSource ss = new StreamSource(getClass().getResourceAsStream("/xslt33/cadenaoriginal_3_3.xslt")); //La ruta donde se encuentra el archivo xslt

Generar clases java del CFDI versión 3.3 con comando xjc

Hola,

Les dejo los pasos para la generación de las clases java del CFDI 3.3:

1. Obtener el archivo cfdv33.xsd (http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd)
2. Crear un directorio donde se crearan las clases java (ejemplo: testing)
3. Ejecutar el comando (Se encuentra en la distribución de java, a partir de la versión 6):
xjc -d ./testing/ cfdv33.xsd
4. Los warnings son debido a que esos catálogos son demasiado grandes. Sin embargo, se han generado la mayoría de las clases.
No he podido generar estos enums con esta herramienta (xjc) ya que son demasiado grandes y me sale un OutOfMemoryError. Si desean generar estos enum hice un script en python, espero les sirva.

Spring Framework ... Spring MVC

¿Qué es Spring Framework?

Es un marco de trabajo que se apoya en algunos estándares Java EE para el desarrollo de aplicaciones y contenedor de inversión de control. Nos permite, entre otras cosas, crear aplicaciones web, servicios REST, persistencia de bases de datos relacionales y no relacionales, etc. En este post hablaremos de Spring MVC, el cual es un marco de trabajo que nos permite crear aplicaciones web con la arquitectura MVC.

Arquitectura Modelo-Vista-Controlador (Model-View-Control)

Esta arquitectura se compone de tres principales conceptos:

  • A. Modelo: Objetos Java.
  • B. Vista: Plantilla que genera la HTML.
  • C. Controlador: Controlador que atiende las peticiones HTTP que llegan al servidor desde el navegador; si resuelve la petición, devuelve una respuesta, en este caso la página HTML.

Supongamos que un cliente quiere saber el estado actual de sus movimientos bancarios.

  1. El cliente hace una solicitud al servidor.

¿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

Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">