Después de un montón de prueba y error intentando instalar el chain de certificados intermedios y raíz (root) para una autoridad de certificación (CA) y sin éxito, me encontré con ésta herramienta:
Keystore Explorer
http://keystore-explorer.sourceforge.net/
Me parece excelente y logró ayudarme a realizar lo que buscaba, la recomiendo al 100%
Bienvenidos a mí blog, en éste espacio comparto mis experiencias y conocimientos relacionados con las tecnologías de integración de sistemas, lenguajes de programación, desarrollo de software, bases de datos y Agilismo. Sí tienes comentarios, inquietudes o sugerencias, no dudes en escribirlos...
Buscar en el Blog
Mostrando entradas con la etiqueta Java. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java. Mostrar todas las entradas
viernes, 11 de abril de 2014
jueves, 23 de enero de 2014
Cómo corregir un Unsatisfied Link Error en Ubuntu al correr una aplicación Java
En Ubuntu, sí no se tienen instalados los paquetes de librerías gráficas (libswt) para una aplicación Java que posea GUI se suele tener el siguiente error:
Para resolver esto es necesario instalar las librerías (libswt) usando el siguiente comando:
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Para resolver esto es necesario instalar las librerías (libswt) usando el siguiente comando:
sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java
martes, 23 de julio de 2013
Cómo crear un explorador de colas (QueueBrowser) para JMS
En ésta publicación, comparto el código Java para crear un explorador de colas JMS:
package com.blogspot.ingmmurillo.jms;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.junit.Test;
import javax.jms.*;
import java.util.Enumeration;
public class JMSQueueBrowser {
@Test
public void test() throws JMSException {
System.out.println("Explorador de Colas JMS (QueueBrowser)");
String url = "tcp://localhost:61717";
String queueName = "test";
ConnectionFactory connectionFactory =
new ActiveMQConnectionFactory(url);
Connection connection = connectionFactory.createConnection();
connection.start();
System.out.println(connection.getMetaData().getJMSProviderName() + " JMS " +
connection.getMetaData().getJMSVersion());
QueueSession session = (QueueSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(queueName);
QueueBrowser browser = session.createBrowser(queue);
Enumeration e = browser.getEnumeration();
if (e != null) {
int i = 0;
while (e.hasMoreElements()) {
Object msg = e.nextElement();
ActiveMQTextMessage m = (ActiveMQTextMessage) msg;
System.out.println(m.getText());
i++;
}
System.out.println("Nro. Mensajes: " + (i));
}
browser.close();
session.close();
connection.close();
}
}
Cómo cambiar la configuración regional y la codificación en Java
Para cambiar la configuración regional y la codificación a UTF-8 en un programa Java se tiene que colocar los siguientes parámetros de la máquina virtual:
-Duser.country=US -Duser.language=en -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8
lunes, 8 de abril de 2013
Código Java para convertir un archivo en codificación ANSI a UTF-8
En ésta publicación explico el procedimiento para convertir un archivo de texto en codificación ANSI a la codificación UTF-8. A continuación comparto el código:
En dónde la variable srcEncoded corresponde a un arreglo de bytes con el contenido del archivo de texto.
String srcAnsiEncoded = new String(srcEncoded, "ISO-8859-15");
byte[] srcUTF8 = srcAnsiEncoded.getBytes("UTF-8");
En dónde la variable srcEncoded corresponde a un arreglo de bytes con el contenido del archivo de texto.
viernes, 8 de marzo de 2013
Código Java para imprimir en una impresora nombrada
En ésta publicación comparto el código Java para imprimir en una impresora nombrada.
public static void main(String args[]) throws FileNotFoundException, IOException, PrintException {
//Archivo que se desea imprimir
FileInputStream inputStream = new FileInputStream("c:/archivo.pdf");
//Formato de Documento
DocFlavor docFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
//Lectura de Documento
Doc document = new SimpleDoc(inputStream, docFormat, null);
//Nombre de la impresora
String printerName = "HP3015";
//Inclusion del nombre de impresora y sus atributos
AttributeSet attributeSet = new HashAttributeSet();
attributeSet.add(new PrinterName(printerName, null));
attributeSet = new HashAttributeSet();
//Soporte de color o no
attributeSet.add(ColorSupported.NOT_SUPPORTED);
//Busqueda de la impresora por el nombre asignado en attributeSet
PrintService[] services = PrintServiceLookup.lookupPrintServices(docFormat, attributeSet);
System.out.println("Imprimiendo en : " + services[0].getName());
DocPrintJob printJob = services[0].createPrintJob();
//Envio a la impresora
printJob.print(document, new HashPrintRequestAttributeSet());
inputStream.close();
}
martes, 29 de enero de 2013
Cómo purgar una cola de ActiveMQ usando el API de JMX
En ésta publicación explico el procedimiento para purgar (purge) una cola de Apache ActiveMQ usando el API de JMX.
1. Tener habilitado el soporte para JMX en ActiveMQ, en la siguiente publicación se explica cómo hacerlo
2. Incluir las siguientes líneas de código Java que usan el API de JMX:
1. Tener habilitado el soporte para JMX en ActiveMQ, en la siguiente publicación se explica cómo hacerlo
2. Incluir las siguientes líneas de código Java que usan el API de JMX:
public void purgeQueue() throws NamingException, IOException, MalformedObjectNameException, InstanceNotFoundException, ReflectionException, MBeanException {
String activeMQBrokerHost = "localhost"; //Dirección IP o nombre del servidor de ActiveMQ
String queueToPurge = "test.queue"; //Nombre de la Cola
JMXServiceURL jmxURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + activeMQBrokerHost + ":1099/jmxrmi");
ObjectName queue = new ObjectName("org.apache.activemq:BrokerName=" + activeMQBrokerHost + ",Type=Queue,Destination=" + queueToPurge);
JMXConnector jmxConnection = JMXConnectorFactory.connect(jmxURL);
MBeanServerConnection mBeanConnection = jmxConnection.getMBeanServerConnection();
mBeanConnection.invoke(queue, "purge", null, null);
jmxConnection.close();
}
miércoles, 19 de septiembre de 2012
Uso de Apache Commons Email para enviar emails (Configuración GMAIL)
Este resumen no está disponible. Haz
clic en este enlace para ver la entrada.
martes, 28 de agosto de 2012
Cómo preservar el orden de los elementos de un HashMap
Cuándo usamos un HashMap en Java y consultamos sus elementos ya sean las claves o los valores, éstos por defecto se nos devuelven ordenados.
En ocasiones, éste comportamiento por defecto de un HashMap no nos conviene, por lo que para preservar el orden de cómo ingresamos los elementos es preferible usar un LinkedHashMap .
En la siguiente clase Java se ilustra éste comportamiento usando un HashMap y un LinkedHashMap .
El resultado de la ejecución de éste programa es el siguiente:
En ocasiones, éste comportamiento por defecto de un HashMap no nos conviene, por lo que para preservar el orden de cómo ingresamos los elementos es preferible usar un LinkedHashMap .
En la siguiente clase Java se ilustra éste comportamiento usando un HashMap y un LinkedHashMap .
public class HashMapTest {
public static void main(String[] args) {
System.out.println("Mapa Ordenado usando HashMap...");
HashMap<String, Object> sortMap = new HashMap<String, Object>();
sortMap.put("B", new Integer(2));
sortMap.put("Z", new Integer(1));
sortMap.put("A", new Integer(9));
for (Map.Entry entry : sortMap.entrySet()) {
System.out.println("Clave : " + entry.getKey()
+ " Valor : " + entry.getValue());
}
System.out.println("\nMapa Preservando el Orden usando LinkedHashMap...");
LinkedHashMap<String, Object> unsortMap = new LinkedHashMap<String, Object>();
unsortMap.put("B", new Integer(2));
unsortMap.put("Z", new Integer(1));
unsortMap.put("A", new Integer(9));
for (Map.Entry entry : unsortMap.entrySet()) {
System.out.println("Clave : " + entry.getKey()
+ " Valor : " + entry.getValue());
}
}
}
El resultado de la ejecución de éste programa es el siguiente:
Mapa Ordenado usando HashMap... Clave : A Valor : 9 Clave : B Valor : 2 Clave : Z Valor : 1 Mapa Preservando el Orden usando LinkedHashMap... Clave : B Valor : 2 Clave : Z Valor : 1 Clave : A Valor : 9
jueves, 12 de julio de 2012
Cómo generar un WAR usando el comando JAR
En ésta publicación explico el comando para generar un archivo WAR (Web Application Archive) usando el comando jar
Antes de poder ejecutar el comando es importante tener instalado correctamente el JDK y sus variables de entorno (JAVA_HOME y PATH)
1. Abrir una consola de comandos de Windows (cmd) y ejecutar el comando jar para asegurarnos que esté en el PATH del sistema operativo
2. Ir al directorio de la aplicación web que queremos generar el archivo WAR , por ejemplo: C:/workspace/aplicacion_web
3. Ejecutar el siguiente comando para generar el archivo WAR
Antes de poder ejecutar el comando es importante tener instalado correctamente el JDK y sus variables de entorno (JAVA_HOME y PATH)
1. Abrir una consola de comandos de Windows (cmd) y ejecutar el comando jar para asegurarnos que esté en el PATH del sistema operativo
2. Ir al directorio de la aplicación web que queremos generar el archivo WAR , por ejemplo: C:/workspace/aplicacion_web
3. Ejecutar el siguiente comando para generar el archivo WAR
jar cvf aplicacion_web.war .
martes, 12 de junio de 2012
Código Java para imprimir en la impresora predeterminada
En la siguiente publicación comparto el código Java para envíar a imprimir un archivo PDF a la impresora por defecto, éste código puede servir para programar la funcionalidad de impresión silenciosa.
Recomiendo además instalar Bullzip PDF Printer qué es una impresora PDF muy útil para realizar pruebas de impresión sin necesidad de gastar hojas de papel.
A continuación el código fuente:
Recomiendo además instalar Bullzip PDF Printer qué es una impresora PDF muy útil para realizar pruebas de impresión sin necesidad de gastar hojas de papel.
A continuación el código fuente:
import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class PrintTest {
public static void main(String args[]) throws IOException {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream("c:/archivo.pdf");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (inputStream == null) {
return;
}
DocFlavor docFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc document = new SimpleDoc(inputStream, docFormat, null);
PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();
PrintService defaultPrintService = PrintServiceLookup.lookupDefaultPrintService();
if (defaultPrintService != null) {
DocPrintJob printJob = defaultPrintService.createPrintJob();
try {
printJob.print(document, attributeSet);
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.err.println("No existen impresoras instaladas");
}
inputStream.close();
}
}
jueves, 17 de mayo de 2012
Tabla de caracteres latinos en UNICODE para Java
Para evitar problemas por la codificación de caracteres (encoding) es recomendable colocar el código UNICODE de los caracteres latinos cuando programemos en Java. En la siguiente tabla se encuentran los códigos UNICODE de los caracteres latinos más usados.
| Caracter | Codigo UNICODE | Caracter | Codigo UNICODE |
|---|---|---|---|
| á | \u00E1 | Á | \u00C1 |
| é | \u00E9 | É | \u00C9 |
| í | \u00ED | Í | \u00CD |
| ó | \u00F3 | Ó | \u00D3 |
| ú | \u00FA | Ú | \u00DA |
| ñ | \u00F1 | Ñ | \u00D1 |
public class TestUNICODE {
public static void main(String[] args) {
System.out.println("\u00E1");
System.out.println("\u00E9");
System.out.println("\u00ED");
System.out.println("\u00F3");
System.out.println("\u00FA");
System.out.println("\u00F1");
System.out.println("\u00C1");
System.out.println("\u00C9");
System.out.println("\u00CD");
System.out.println("\u00D3");
System.out.println("\u00DA");
System.out.println("\u00D1");
String mensaje = "Aqu\u00ED est\u00E1 mi prueba!!!";
System.out.println(mensaje);
}
}
martes, 8 de mayo de 2012
Cómo configurar Adobe Flash Builder 4.5 para que se conecte a servicios web seguros (HTTPS)
En ésta publicación explico el procedimiento para que a través de Adobe Flash Builder 4.5 instalado sobre Windows, podamos crear clientes para servicios web seguros expuestos sobre el protocolo HTTPS.
Supongamos que tenemos el siguiente servicio web expuesto sobre HTTPS:
URL = https://midominio.com/ServicioWebSeguro?wsdl
Usando Firefox, abrimos una nueva ventana con el URL, y vamos a:
Tools (Herramientas) > Page Info (Información de Página) > Security (Seguridad) > View Certificate (Ver Certificado)
En la pestaña de Details (Detalles), damos clic en Export (Exportar) para exportar el certificado de seguridad del servicio web. Para éste ejemplo lo guardamos en el siguiente directorio:
Usando IE, abrimos una nueva ventana con el URL, damos clic derecho, opción Certificados > Detalles > Copiar en archivo...
Registro del certificado usando keytool
Abrimos una consola de comandos (cmd)y ejecutamos el siguiente comando:
NOTA: es necesario tener instalado el JRE para acceder directamente a la herramienta keytool. La herramienta también se encuentra en el directorio de instalación del JDK, en mi caso (C:\Program Files\Java\jdk1.6.0_26\bin)
En el directorio de instalación de Adobe Flash Builder 4.5, en mi caso: (C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5), editamos el archivo FlashBuilder.ini y colocamos:
Abrimos Adobe Flash Builder 4.5, en la opción de Data > Connect to Web Service colocamos el URL del servicio web seguro y el IDE generará el cliente de servicio web.
Supongamos que tenemos el siguiente servicio web expuesto sobre HTTPS:
URL = https://midominio.com/ServicioWebSeguro?wsdl
Exportación del Certificado con Firefox
Usando Firefox, abrimos una nueva ventana con el URL, y vamos a:
Tools (Herramientas) > Page Info (Información de Página) > Security (Seguridad) > View Certificate (Ver Certificado)
En la pestaña de Details (Detalles), damos clic en Export (Exportar) para exportar el certificado de seguridad del servicio web. Para éste ejemplo lo guardamos en el siguiente directorio:
c:\certs\serviciowebseguro.crt
Exportación del Certificado con Internet Explorer (IE)
Usando IE, abrimos una nueva ventana con el URL, damos clic derecho, opción Certificados > Detalles > Copiar en archivo...
Registro del certificado usando keytool
Abrimos una consola de comandos (cmd)y ejecutamos el siguiente comando:
keytool -import -alias cert1 -keystore "c:\certs\truststore.jks" -file c:\certs\serviciowebseguro.crt
NOTA: es necesario tener instalado el JRE para acceder directamente a la herramienta keytool. La herramienta también se encuentra en el directorio de instalación del JDK, en mi caso (C:\Program Files\Java\jdk1.6.0_26\bin)
Modificar el archivo FlashBuilder.ini
En el directorio de instalación de Adobe Flash Builder 4.5, en mi caso: (C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5), editamos el archivo FlashBuilder.ini y colocamos:
-Djavax.net.ssl.trustStore="c:\certs\truststore.jks"
Abrimos Adobe Flash Builder 4.5, en la opción de Data > Connect to Web Service colocamos el URL del servicio web seguro y el IDE generará el cliente de servicio web.
jueves, 8 de marzo de 2012
Cómo obtener la IP de un cliente de servicio web expuesto con Axis
Para obtener la dirección IP del cliente que consume un servicio web publicado con Apache Axis se tiene que hacer lo siguiente:
1. Dentro de la clase que tiene el método que se está invocando en el servicio web importar las siguientes clases:
2. Finalmente, incluir el siguiente código:
1. Dentro de la clase que tiene el método que se está invocando en el servicio web importar las siguientes clases:
import org.apache.axis.Constants; import org.apache.axis.MessageContext;
2. Finalmente, incluir el siguiente código:
MessageContext curContext = MessageContext.getCurrentContext(); String ip = curContext.getProperty(Constants.MC_REMOTE_ADDR).toString();
jueves, 23 de febrero de 2012
Encriptando una contraseña con Jasypt
En esta guía explico el procedimiento para encriptar una contraseña con Jasypt.
1. Descargar Jasypt del siguiente link: http://sourceforge.net/projects/jasypt/files/jasypt/jasypt%201.9.0/jasypt-1.9.0-dist.zip/download
2. Descomprimir el archivo. Por ejemplo: C:\jasypt-1.9.0
3. Abrir una consola de comandos (cmd) e ir a C:\jasypt-1.9.0\bin
4. Ejecutar el siguiente comando:
1. Descargar Jasypt del siguiente link: http://sourceforge.net/projects/jasypt/files/jasypt/jasypt%201.9.0/jasypt-1.9.0-dist.zip/download
2. Descomprimir el archivo. Por ejemplo: C:\jasypt-1.9.0
3. Abrir una consola de comandos (cmd) e ir a C:\jasypt-1.9.0\bin
4. Ejecutar el siguiente comando:
encrypt input="password" password="xxxxxx"
NOTA: En
input se colocará el valor de la contraseña que se quiere encriptar. En
password se colocará el valor de la contraseña global que se usará como
llave para encriptar y desencriptar la contraseña.
jueves, 16 de febrero de 2012
Cómo matar todos los procesos Java
Para matar todos los procesos Java en:
Sistemas Operativos Windows
Sistemas Operativos Unix/Linux
Sistemas Operativos Windows
taskkill /IM java.exe /F
Sistemas Operativos Unix/Linux
killall java
miércoles, 16 de noviembre de 2011
Personajes relevantes en el mundo Java
En ésta publicación listo a los que considero los personajes más importantes del mundo Java.
Sí está faltando alguien en la lista háganmelo saber para incluirlo.
| Personaje | Foto | Descripción | Blog |
|---|---|---|---|
| James Gosling | Se le conoce como el padre de Java fue quien creo el primer diseño del compilador y la máquina virtual | ||
| Gavin King | Es el fundador del proyecto Hibernate | ||
| Rod Johnson | Es el fundador del proyecto Spring | ||
| Craig Mcclanahan | Es el creador de Struts | ||
| Marc Fleury | Es el fundador de JBoss | ||
| Joshua Bloch | Lideró e implementó Java Collections Framework | ||
| Kent Beck | Creador de JUnit, Extreme Programming y Test Driven Development | ||
| James Duncan Davidson | Es el creador de Tomcat y Ant | ||
| Ross Mason | Es el creador de Mule | ||
Suscribirse a:
Entradas (Atom)