Foro de elhacker.net

Programación => Java => Mensaje iniciado por: exeny en 1 Diciembre 2011, 22:34 pm



Título: Comunicación de puertos com en un Applet giovynet
Publicado por: exeny en 1 Diciembre 2011, 22:34 pm
Hola tengo una consulta es posible hacer mediante un Applet conectarse a los puertos com

Mi problema es que en entorno de desarrollo (Netbeans) funciona bien el Applet  tengo un método que me muestra los puertos com disponibles y puedo enviar y recibir info pero como con Netbeans tengo todas las librerías funciona muy bien pero ya pasando al server en entorno de producción  (apache tomcat) me da este error (consola de java).

Código:

cargar: clase Main.class no encontrada.
java.lang.ClassNotFoundException: Main.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost/SerialPortTest/build/classes/serialporttest/SerialPortTest/build/classes/serialporttest/Main/class.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Excepción: java.lang.ClassNotFoundException: Main.class



La finalidad del Applet es comunicarme con dispositivos conectados en  pc de los cliente en internet por lo tanto he firmado los Jar.

Si es posible me podrían ayudar de cómo resolver el problema y mostrarme algun ejemplo de cómo agregar librerías externas en un Applet  Gracias.

les muestro el codigo que muestra solo los puertos disponibles

Código:


import giovynet.nativelink.SerialPort;
import giovynet.serial.Com;
import giovynet.serial.Parameters;
import java.applet.*;
import java.awt.Graphics;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Serial_giovynet extends Applet {

   

   
    public void init() {
            }

    // metodo que busca los puertos com disponibles
    public String getfindport() throws Exception {
        String x = "";
        SerialPort free = new SerialPort();
        List<String> portList = free.getFreeSerialPort();
        for (String openport : portList) {
            x = openport + " " + x;
        }
        return x;
    }

   
  //mostrando en pantalla los puertos com disponibles
    public void paint(Graphics g) {
        try {
            g.drawString("puertos comm disponibles  " + this.getfindport(), 80, 80);
        } catch (Exception ex) {
            Logger.getLogger(Serial_giovynet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}





Título: Re: Comunicación de puertos com en un Applet giovynet
Publicado por: adastra en 2 Diciembre 2011, 10:14 am
Es un applet, tienes que empaquetar la clase en un JAR y ponerlo en el classpath para que sea accesible al proceso de la máquina virtual que ejecuta Tomcat.


Título: Re: Comunicación de puertos com en un Applet giovynet
Publicado por: exeny en 2 Diciembre 2011, 21:33 pm
Hola gracias adastra por supuesto intente ponerlo en el PATH el .dll , el GiovynetDriver.jar, pero siempre me sigue dando el error te muestro como lo pongo este es en manifest.mf  desntro del jar de mi applet

Código:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_25-b06 (Sun Microsystems Inc.)
Class-Path: lib/GiovynetDriver.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: serialporttest.Main


lib/GiovynetDriver.jar es el jar de giovynet el problema es que he intentado de todo pero sigue dandome el error de que no encuentra la clase principal ,el applet esta firmado.

Alguna sugerencia.


Título: Re: Comunicación de puertos com en un Applet giovynet
Publicado por: adastra en 2 Diciembre 2011, 21:44 pm
no entendi eso de "supuesto intente ponerlo en el PATH el .dll"
cual ddl? solo necesitas el JAR.
Ahora bien, si lo tienes correctamente creado, intenta ponerlo en el directorio de librerias de Tomcat
<TOMCAT_DIR>/lib

Si no te funciona, ponlo en las extensiones de la máquina virtual.

<JAVA_DIR>/lib/ext



Título: Re: Comunicación de puertos com en un Applet giovynet
Publicado por: exeny en 5 Diciembre 2011, 15:55 pm
Ya pude resolver el problema les informo el procedimiento por si hay alguien que necesite en un futuro resolver el mismo inconveniente.

1 – se desarrolla todo el código necesario
2- se crea el jar del Applet
3- se firman todos los jar y se colocan dentro de la carpeta donde esta el .class
4- dentro del  jar creado  se encuentra una carpeta llamada META-INF donde existe un archivo llamado MANIFEST.MF se edita y se referencia todas los jar  asi Class-Path: GiovynetDriver.jar (jar de la librería )
5- luego en la html del Applet referenciamos los jar así ARCHIVE =  "serial_giovynet.jar ,GiovynetDriver.jar"  donde ARCHIVE = nombre_de_los_jar.jar todos.

6-se colocan las librerías .dll y .so en C:\Archivos de programa\Java\jre6\bin y C:\Archivos de programa\Java\jre6\lib
Y en su C:\Archivos de programa\Java\jdk1.6.0_25\bin y lib
Ya con esto debería de funcionar cualquier duda o error comuníquenmelo para corregirlo y gracias



Título: Re: Comunicación de puertos com en un Applet giovynet
Publicado por: adastra en 5 Diciembre 2011, 17:09 pm
No es una buena practica combinar código desarrollado por el usuario, con los ejecutables y JAR que vienen incluidos en la distribución de la máquina virtual.