Mostrando entradas con la etiqueta Eclipse. Mostrar todas las entradas
Mostrando entradas con la etiqueta Eclipse. Mostrar todas las entradas

miércoles, 13 de enero de 2016

Error 404 Not Found en Tomcat desde Eclipse

Hoy programando tuve una incidencia con JAVA EE , donde estoy trabajando con Tomcat y Eclipse.

Al ejecutar el Tomcat , me salía la página HTML como "404 not found" , el error decía como sigue :

Estado HTTP 404 -


type Informe de estado
mensaje
descripción El recurso requerido no está disponible.

Apache Tomcat/7.0.67


Escribiendo esta url  http://localhost:8080/ejemplo/WEB-INF/ejemplo.html

Después de andar a ver posibles soluciones , la solución a la que llegué después de mucho navegar y que me ha funcionado es lo siguiente.

El problema existe porque WEB-INF no permite el acceso directo a los documentos por consiguiente hay que mover el archivo y crear todo fuera de la carpeta WEB-INF , que viene a ser dentro de WebContent.

Adjunto unas capturas del antes y después , como tendría que quedar la jerarquía de carpetas :

Después
Antes

Como os podéis fijar , lo único que he hecho es subir el fichero ejemplo.html al mismo nivel de WEB-INF no ponerlo por debajo de este.

Accedemos a :
 http://localhost:8080/ejemplo/ejemplo.html

O le damos de nuevo a ejecutar al eclipse y con ello reiniciamos e lservidor y ya tiene que funcionar sin problemas.

miércoles, 22 de abril de 2015

DatagramPacket y DatagramSocket

Programando en Java me he encontrado varios problemas para establecer conexión entre equipos tenemos dos opciones Socket y DatagramSocket , que uno es por medio de TCP y UDP. Haré un FAQ o una lista de problemas que me han surgido y su solución , también comentaré DatagramPacket , que es para enviar los paquetes por el canal creado gracias al DatagramSocket :


Problema 1.- java.net.BindException: No se puede asignar la dirección solicitada

Solución asignar el puerto correcto yo por equivocación asigné el 58000 , pero había que asignar el 8080, que por wikipedia podemos ver que esta sin asignación.
.... 
int port = 8080;
....
DatagramSocket dS = new DatagramSocket(null);
dS.setReuseAddress(true);
ds.bind(new InetSocketAddress(IP_emisor,port));
....
Problema 2.- java.net.BindException: Permiso denegado
Problema 3.- Java.net.BindException : Already bound

Estos problemas se solucionan poniendo de forma correcta la cosntrucción del DatagramSocket y DatagramPacket :
String IP_envio = "";
int port = 8080;
DatagramSocket dS = new DatagramSocket(null);
dS.setReuseAddress(true);
DatagramPacet dP = new DatagramPacket(buff,buff.length, InetAddress.getByName(IP_envio) ,port); 
dS.send(dP); 
Esto no está ordenado , pero en general quedaría de la siguiente manera :
try {
   try {
   DatagramSocket dS = new DatagramSocket(null);
   
   dS.setReuseAddress(true);
  
   DatagramPacket dP = null;
    
   synchronized(recepcionNodos.class){
    try {
     dP = new DatagramPacket(tablaEnca , tablaEnca.length, InetAddress.getByName(IP_envio)  , port); 
        dS.send(dP);
        System.out.println("Paquete enviado");
    } catch (UnknownHostException e) {
     e.printStackTrace();
    } catch (IOException e){
     e.printStackTrace();
    }
    try {
     dS.send(dP);
    } catch (IOException e) {
     e.printStackTrace();
    } 
   }
  } catch (SocketException e) {
   e.printStackTrace();
  }

Como crearlos 

Nos encontramos que para instanciar estas classes en nuestros respectivos proyectos tenemos que hacer lo siguiente :
DatagramSocket dS = new DatagramSocket(null);
Esto lo que hace es crear el DatagramSocket por defecto , ya que podemos poner nosotros el puerto pero eso nos generará problemas innecesarios desde mi punto de vista.
dS.setReuseAddress(true);

Esto nos permitirá usar un socket por más de una conexión UDP , por ejemplo si tenemos varias IP's creadas en nuestra interfaz y en el programa solo queremos que use un puerto , pues con esto logramos que todas esas IP's credas usen dicho puerto UDP , sin problema y no nos comente , que el puerto ya esta en uso.

dP = new DatagramPacket(tablaEnca , tablaEnca.length, InetAddress.getByName(IP_envio)  , port);
Sigue el formato de :
DatagramPacket dP = new DatagramPacket (buff , buff.length, IP , puerto);

martes, 21 de abril de 2015

Como añadir temas en eclipse

Hoy se os trae algo que gusta , que son los temas de Eclipse. Lo que nos ayuda a los programadores a no dejarnos en ocasiones la vista después de estar horas y horas delante de un ordenador.


Estos temas los encontraremos en páginas como : 

http://eclipsecolorthemes.org/

Donde nos saldrán nos descargaremos el que más nos guste , nos encontraremos con infinidad de ellos , hay para gustos. Descargamos como .epf .

Una vez que lo hemos descargado nos ponemos ante la cuestión ¿Como lo metemos en Eclipse este estilo tan cool? Pues los pasos son los siguientes : 


  1. File -> Import -> Preferences
  2. Seleccionamos el tema en el "Browser" y Click en "Finish" y ya tenemos nuestro estilo nuevo en eclipse.
Otra pregunta es : 


¿Quiero modificar el estilo que tengo y ponerme otro?

Primero tendremos que descargar un plugin de eclipse que nos ayudará mucho :


  1. Accedemos a help > Install New Software
  2. En Work with escribimos http://eclipse-color-theme.github.com/update 
  3. Descargamos el gestor de themas de eclipse y lo instalamos.
  4. Luego accedemos a Windows > Preferences
  5. Desplegamos General > Appearance y nos encontraremos con un apartado Color Themes , donde extraerá todos los temas de la página http://eclipsecolorthemes.org/ .

Y por medio de esta forma podemos cambiar el tema que más se nos antoje de los que tiene eclipsecolorthemes.

Fuentes : 

El tema que yo me puse es este.

sábado, 18 de abril de 2015

Crear Proyecto nuevo en Eclipse

Bueno para crear un proyecto nuevo en eclipse hay que hacer los siguientes pasos :


  1. Click en File > New > Java Proyect
  2. Project Name , ponemos el Nombre de nuestro proyecto
  3. Click en Finish

Para crear la clase Main , haremos :


  1. Secundario en el proyecto New > Class
  2. Ponemos el Nombre y le damos a Accept

Entonces nos saldrá el texto autogenerado de java de una clase Main :

public class Prueba {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}


Donde nosotros haremos que haga algo como :

  
public class Prueba {
    public static void main(String[] args) {
        
        System.out.println("Hello HardCodeDev!");
        
    }

}

Que esto tendrá la salida

Hello HardCodeDev!

sábado, 11 de abril de 2015

Entornos de desarrollo para Java

Introducción

En este post vamos a tratar los IDE (Integrated Development Enviroment) o Entornos de desarrollo integrado o simplemente entorno de desarrollo ,  relacionados con JAVA.

Tenemos varios , yo personalmente conozco 2 que son desde mi punto de vista , son tan parecidos que realmente da igual el que usar , porque los dos nos aportan practicamente lo mismo , aunque con sus matices.
  1. Netbeans.
  2. Ecilpse.
  3. Emacs.

 Primero .- Netbeans

Ante todo es un IDE gratuito y de código abierto , cosa que se agradece para el desarrollo de nuestras aplicaciones .
Para mi uno de los mejores  , ya que abarca no solo JAVA sino multitud de lenguajes como :
  • JAVA (SE, FX, EE, ME).
  • HTML5
  • C / C++
  • Groovy
  • PHP
 Más tiene integrados los instalables de los servidores :
  • GlassFish
  • Apache Tomcat
Tiene plugins que podremos descargarnos desde la misma aplicación , donde tenemos infinidad de ellos. Desde mi punto de vista el mejor IDE de desarrollo para JAVA.

Sitio de descarga aquí .

Segundo .- Eclipse

Otro IDE como el anterior gratuito y de código abierto es una alternativa a Netbeans muy factible , también como Netbeams soporta multitud de lenguajes aparte de JAVA :
  • JAVA.
  • C/C++
  • PHP
Este IDE como Netbeans tiene también multitud de plugins que nos harán más facil la programación como temas que se agradecen para no dejarnos la vista cuando nos tiramos horas delante del ordenador , cosa que también tiene Netbeans.

Sitio de descarga aquí.

Tercero .- Emacs

En este también se puede programar en JAVA pero no nos ayudará en nada , es el Notepad de programación de Ubuntu , yo he programado en él y es útil y ayuda a aprender a programar ya que no autocompleta ningún código , y que tendrémos que usar un compilador externo para compilar nuestro código que ese sí , nos dirá que tenemos mal.

Para descargar este programa simplemente tenemos que escribir en la terminal de Ubuntu :

sudo apt-get install emacs