Mostrando entradas con la etiqueta Java EE. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java EE. Mostrar todas las entradas

sábado, 23 de agosto de 2014

¿Como obtener la IP y Nombre del Host desde Java?

0 comentarios

Muchas veces necesitamos obtener la ip donde estamos ejecutando nuestra aplicación, ya sea para llenar un Log o para realizar otra operación. Para conocer  la IP local desde Java solo tendremos que utilizar  el objeto InetAddress. (java.net.InetAddress)

con estas tres líneas podrás saber tu número de ip y tu nombre de host:

InetAddress IP; 
 
IP = InetAddress.getLocalHost();
System.out.println("Nombre de Host:"+IP.localHost.getHostName());
System.out.println( "Dirección IP:"+IP.localHost.getHostAddress());


Para conocer tu IP externa, debes hacer una llamada al exterior porque desde tu 
propia maquina no sabes cuál es tu ip, ya que realmente la ip pertenece al routerque es tu puerta de enlace.
para conocer realmente cuál es tu IP externa debes hacer una petición http, hay algunas páginas que te devuelven esta información , como http://www.whatismyip.com/ y http://checkip.amazonaws.com/
Te muestro un pequeño ejemplo:

URL whatismyip = new URL("http://checkip.amazonaws.com");
 
BufferedReader entrada = new BufferedReader(new InputStreamReader(
 
whatismyip.openStream()));
 
String IPpublic = entrada.readLine();
 
System.out.println("MI IP PUBLICA ES: = "IPpublic);
 
entrada.close();


viernes, 22 de agosto de 2014

Conexión JDBC PostgreSQL

0 comentarios
En este ejemplo estableceremos una conexión con PostgreSQL 9.3, para el cual es necesario contar con la respectiva librería como la que se muestra a continuación:

postgresql-9.3-1102.jdbc3.jar

Ustedes deberán conseguir la librería de acuerdo a la versión de PostgreSQL al cual deseen conectarse y establecer los parámetros de conexión como se muestra en el código siguiente:

package jimmyosmar;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
/**
 *
 * @author jimmyosmar
 */
public class Ejm12_ConectarPostgreSQL {

    public CachedRowSet Function(String sql)
    {
            try
            {
                    Class.forName("org.postgresql.Driver");

                    String url = "jdbc:postgresql://127.0.0.1:5432/postgres";
                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                                      ResultSet.CONCUR_READ_ONLY);

                    ResultSet rs= s.executeQuery(sql);

                    CachedRowSet crs = new CachedRowSetImpl();
                    crs.populate(rs);

                    rs.close();
                    s.close();
                    con.close();

                    return crs;

            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
            }

            return null;
    }

    public void StoreProcedure(String sql)
    {

            try
            {
                    Class.forName("org.postgresql.Driver");

                    String url = "jdbc:postgresql://127.0.0.1:5432/postgres";
                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement();

                    s.execute(sql);

                    s.close();
                    con.close();

            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
            }
    }
}

Conexión JDBC Mysql

0 comentarios
En este ejemplo estableceremos una conexión con MySQL, para el cual es necesario contar con la respectiva librería como la que se muestra a continuación:


Ustedes deberán conseguir la librería de acuerdo a la versión de MySQL al cual deseen conectarse y establecer los parámetros de conexión como se muestra en el código siguiente:
package jimmyosmar; 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
/**
 *
 * @author jimmyosmar
 */
public class Ejm12_2_ConectarMySQL {

    public CachedRowSet Function(String sql)
    {
            try
            {
                    Class.forName("org.gjt.mm.mysql.Driver");
                    String url = "jdbc:mysql://127.0.0.1:3306/mysql";
                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                                      ResultSet.CONCUR_READ_ONLY);
                    ResultSet rs= s.executeQuery(sql);
                    CachedRowSet crs = new CachedRowSetImpl();
                    crs.populate(rs);
                    rs.close();
                    s.close();
                    con.close();
                    
                    return crs;
            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
            }
            return null;
    }

    public void StoreProcedure(String sql)
    {
            try
            {
                    Class.forName("org.gjt.mm.mysql.Driver");

                    String url = "jdbc:mysql://127.0.0.1:3306/mysql";
                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement();

                    s.execute(sql);

                    s.close();
                    con.close();

            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
      }
    }
}


miércoles, 20 de agosto de 2014

¿Qué IDE elegir para Programar Java?

0 comentarios
Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, que consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. Al momento de Programar Con Java nos encontramos con decenas de IDEs en la web, algunos de licencia Privada, otros de código abierto, también los hay para diversos para diversos sistemas operativos. Pero las preguntas que nos vienen a la mente son ¿Cuál es el mejor? y ¿cuál es más fácil de usar? El mejor es el que se adapte a tus necesidades, no es lo mismo desarrollar una aplicación completa con uso de framework, conexión a base de datos, que solo editar unas pocas líneas para realizar un ejercicio práctico. En cuanto a la facilidad de uso, todos son relativamente muy intuitivos al momento de desarrollar aplicaciones, además la mayoría trae su documentación bien detallada. Por la experiencia que tengo en el desarrollo de aplicaciones Java, te recomiendo los siguientes IDEs:







Netbeans. Comenzó como un proyecto estudiantil en el Charles University, Praga, Republica Checa. Originalmente era llamado Xelfi. Fue el primer IDE programado en Java bajo el nombre de Xelfi con su primer release en 1997. El nombre actual lo propuso Jarda Tulach en descripción a lo que buscaban hacer con el proyecto: Network + Java Beans = Netbeans.













Eclipse. El proyecto Eclipse fue originalmente creado por IBM en Noviembre de 2001 y es apoyado por un consorcio de proveedores de software. La fundación Eclipse fue fundada en Enero de 2004 como una corporación independiente libre de lucro para apoyar a la comunidad Eclipse.









JDeveloper. El IDE de Oracle para trabajar con Java, ellos mismos lo definen como un ambiente que simplifica el desarrollo de las aplicaciones SOA y JEE basadas en java. Para los lenguajes Java, HTML, XML, SQL, PL/SQL, Javascript, PHP, Oracle ADF, UML y otros. Es un software propietario pero gratuito desde 2005.






Intellij IDEA. Es un entorno de desarrollo Java creado por Jet Brains del que existen dos distribuciones: Comunity Edition (open source) y Ultimate (comercial). Sus creadores definen este IDE como el más inteligente del mundo.

viernes, 30 de mayo de 2014

Conexión SSH y SFTP en JAVA

1 comentarios
Es muy común que nuestras aplicaciones necesiten hacer descargas o subidas de ficheros a otras máquinas, para ello, podemos usar el protocolo SFTP (Secure File Transfer Protocol). Con este protocolo agregamos un nivel de seguridad comparado con el típico FTP.

Para lograr esto con Java, necesitamos de una librería externa que no viene incluido en el JDK, que nos proveerá JSch (Java Secure Channel). y luego tenemos que agregar la librería .jar externa en nuestro IDE, ya sea Eclipse o NetBeans. JSch es utilizado en varias famosas aplicaciones como Eclipse y NetBeans, Jakarta, Ant, y otros.

Archivo CargaSFTP.java

1.        package test;  
2.          
3.        import java.io.FileWriter;  
4.        import java.io.PrintWriter;  
5.          
6.        import com.jcraft.jsch.ChannelSftp;  
7.        import com.jcraft.jsch.JSch;  
8.        import com.jcraft.jsch.Session;  
9.        import com.jcraft.jsch.UserInfo;  
10.         
11.       public class CargaSFTP {  
12.        private static final String user = "test";  
13.        private static final String host = "Ip-servidor";  
14.        private static final Integer port = 22;  
15.        private static final String pass = "**-Contraseña-**";  
16.         
17.        public static void main(String[] args) throws Exception {  
18.         System.out.println("------------------- INICIO ----------------- ");  
19.         JSch jsch = new JSch();  
20.         Session session = jsch.getSession(user, host, port);  
21.         UserInfo ui = new SUserInfo(pass, null);  
22.         
23.         /* Informacion de las rutas del archivo */  
24.         String nombreLocalArchivo = "localServidor.txt";  
25.         String carpetaLocal = "c:/test/";  
26.         String nombreRemotoArchivo = "NombreArchivoRemoto.html";  
27.         String carpetaRemota = "/listas/";  
28.         
29.         session.setUserInfo(ui);  
30.         session.setPassword(pass);  
31.         session.connect();  
32.         ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");  
33.         sftp.connect();  
34.         generarFichero(carpetaLocal, nombreLocalArchivo);  
35.         // Nos ubicamos en la carpeta Remota  
36.         sftp.cd("/docs/web/" + carpetaRemota);  
37.         System.out.println("Subiendo ...");  
38.         // Colocamos el archivo local en el servidor a la carpeta remota.  
39.         sftp.put(carpetaLocal + nombreLocalArchivo, nombreRemotoArchivo);  
40.         
41.         System.out.println("Archivo subido...");  
42.         
43.         System.out.println("El archivo se puede verificar en la url:");  
44.         System.out.println("Ip_servidor/~test"  
45.           + carpetaRemota + nombreRemotoArchivo);  
46.         
47.         sftp.exit();  
48.         sftp.disconnect();  
49.         session.disconnect();  
50.         
51.         System.out.println("----------------- FIN ----------------- ");  
52.        }  
53.         
54.        private static void generarFichero(String carpetaLocal,  
55.          String nombreLocalArchivo) {  
56.         FileWriter fichero = null;  
57.         PrintWriter pw = null;  
58.         try {  
59.          fichero = new FileWriter(carpetaLocal + nombreLocalArchivo);  
60.          pw = new PrintWriter(fichero);  
61.          pw.println("Fichero con extensión TXT, para ser cargado por SFTP");  
62.         
63.         } catch (Exception e) {  
64.          e.printStackTrace();  
65.         } finally {  
66.          try {  
67.           if (null != fichero)  
68.            fichero.close();  
69.          } catch (Exception e2) {  
70.           e2.printStackTrace();  
71.          }  
72.         }  
73.        }  
74.       }  

Archivo SUserInfo.java 
1.            
2.        package test;  
3.          
4.        import com.jcraft.jsch.UserInfo;  
5.          
6.        public class SUserInfo implements UserInfo {  
7.           
8.            private String password;  
9.            private String passPhrase;  
10.          
11.           public SUserInfo (String password, String passPhrase) {  
12.               this.password = password;  
13.               this.passPhrase = passPhrase;  
14.           }  
15.          
16.           public String getPassphrase() {  
17.               return passPhrase;  
18.           }  
19.          
20.           public String getPassword() {  
21.               return password;  
22.           }  
23.          
24.           public boolean promptPassphrase(String arg0) {  
25.               return true;  
26.           }  
27.          
28.           public boolean promptPassword(String arg0) {  
29.               return false;  
30.           }  
31.          
32.           public boolean promptYesNo(String arg0) {  
33.               return true;  
34.           }  
35.          
36.           public void showMessage(String arg0) {  
37.               System.out.println("SUserInfo.showMessage()");  
38.           }  
39.       }  

Con esto ya hemos realizado la conexión SFTP con el servidor FTP.