Foros del Web » Programación para mayores de 30 ;) » Java »

Utilizar jar en javascript

Estas en el tema de Utilizar jar en javascript en el foro de Java en Foros del Web. Hola a todos, Hace mucho, pero mucho tiempo que no programo en javascript y ahora necesito hacer una pequeña página para administrar un sistema hotsopt. ...
  #1 (permalink)  
Antiguo 24/06/2011, 04:19
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Utilizar jar en javascript

Hola a todos,

Hace mucho, pero mucho tiempo que no programo en javascript y ahora necesito hacer una pequeña página para administrar un sistema hotsopt.
Me han dado una API en java, en formato JAR. Tamibén tengo el código que contiene el JAR (una especie de librería con funciones), lo he compilado obteniendo los CLASS y todo está perfecto.
El problema es como utilizar esto en una web. Encontré el siguiente código para su utilización:

<APPLET CODE="libAPI.ApiConn.class" ARCHIVE="libAPI.jar" WIDTH= 400 HEIGHT= 300 ALIGN=middle>

Al cargar la web me da el siguiente error.

Java Plug-in 1.6.0_24
Usar versión JRE 1.6.0_24-b07 Java HotSpot(TM) Client VM
Directorio local del usuario = C:\Users\Xavier
----------------------------------------------------
java.lang.reflect.InvocationTargetException
at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Un known Source)
at sun.plugin2.applet.Plugin2Manager.runOnEDT(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unk nown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionR unnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.InstantiationException: libAPI.ApiConn
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
.......

¿Sabeis que puede estar pasando?, ¿el contenido del JAR al no ser un applet en si mismo, sinó una colección de funciones, puede ser el problema?
Teneis alguna sugerencia?

Estoy un poco perdido con lo que cualquier ayuda será bien venida.

Muchas gracias
  #2 (permalink)  
Antiguo 24/06/2011, 06:46
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.773
Antigüedad: 15 años, 1 mes
Puntos: 454
Respuesta: Utilizar jar en javascript

Pues sí, si libAPI.ApiConn.class no es un Aplet, así no te funcionará.

Si como pones en el título prentendes llamar a esas funciones desde javascript, deberías hacerte una clase Applet que tenga declaradas todos esos métodos y que llamen a las funciones de verdad del jar. Desde javascript llamarías a los métodos públicos del applet que a su vez llamarían a las funciones del jar.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 26/06/2011, 05:44
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Utilizar jar en javascript

Cita:
Iniciado por chuidiang Ver Mensaje
Pues sí, si libAPI.ApiConn.class no es un Aplet, así no te funcionará.

Si como pones en el título prentendes llamar a esas funciones desde javascript, deberías hacerte una clase Applet que tenga declaradas todos esos métodos y que llamen a las funciones de verdad del jar. Desde javascript llamarías a los métodos públicos del applet que a su vez llamarían a las funciones del jar.

Se bueno.
Gracias por la respuesta.

Que diferencia hay entre una clase nirmaol y otra Applet?, como se hace una Applet?

Entiendo que lo que me dices es que mi Applet hará de puente entre javascript y ls funciones del JAR, verdad?
  #4 (permalink)  
Antiguo 26/06/2011, 05:50
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Utilizar jar en javascript

Chuidiang, estoy intentando hacer lo que me has propuesto pero no logro llamar a las clases del JAR.

Demomento esoty haciendo el Applet pero me dice que no encuentra las clases. Mi código, aún muy sencillo, es:

/**
* @(#)createUser.java
*
* createUser Applet application
*
* @author
* @version 1.00 2011/6/26
*/

import java.awt.*;
import java.applet.*;


public class createUser extends Applet {

public void init() {
}

public void paint(Graphics g) {

g.drawString("Welcome to Java!!", 50, 60 );
ApiConn Conn = new ApiConn("192.168.1.1", 80);

}
}

Me dice que la clase Apiconn no la encuentra, normal, no hay "import" para ella, pero como hago el import, he provado de todo y siempre me dice que no en cuentra la clase. Sería algo así?

import alibAPI.ApiConn;

donde alibAPI és el nombre el JAR que contiene la clase ApiConn y se encuentra en el mismo directorio que el applet que estoy haciendo.

Un saludo
  #5 (permalink)  
Antiguo 27/06/2011, 02:15
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.773
Antigüedad: 15 años, 1 mes
Puntos: 454
Respuesta: Utilizar jar en javascript

Hola:

Abre el jar de ApiConn con cualquier descompresor de ficheros (winrar, winzip, etc) y ahí deberías ver las clases y en qué directorios están metidas. Si ApiConn.class está metida por ejemplo en el directorio org/libreria/ApiConn.class, entonces el import es

import org.libreria.ApiConn

Además, no sé si ejecutas directamente en el navegador o con algún IDE (eclipse, netbeans, etc). El jar debes "incluirlo" de alguna forma en el proyecto. Si vas con el navegador directamente, asegúrate de poner bien el atributo archive del tag applet. Debes poner ese jar en el mismo directorio que el html. Si usas IDE, añade ese jar a tu proyecto.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 27/06/2011, 05:06
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Utilizar jar en javascript

Ya he conseguido que me coja las clases que tengo en alibAPI, gracias a ti claro. Pero ahora me da otro error que no entiendo.

Tengo una clase llamada ApiConn, cuando intento hacer ApiConn ret = new ApiConn(Nombre_maquina, puerto); me da el siguiente error:

java.lang.NoClassDefFoundError: libAPI/ApiConn
at createUser.init(createUser.java:19)
at sun.applet.AppletPanel.run(AppletPanel.java:424)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: libAPI.ApiConn
at sun.applet.AppletClassLoader.findClass(AppletClass Loader.java:211)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 07)
at sun.applet.AppletClassLoader.loadClass(AppletClass Loader.java:144)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 48)
... 3 more

La verdad que no sé a que es debido, he estado 2 horas intentando ver que pasa, pero nada de nada.

Un saludo.
  #7 (permalink)  
Antiguo 27/06/2011, 12:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.773
Antigüedad: 15 años, 1 mes
Puntos: 454
Respuesta: Utilizar jar en javascript

¿libApi es el nombre del paquete en el import? ¿Has puesto en el archive de applet el jar con la clase ApiConn? ¿Has puesto este jar en el mismo directorio que la página html?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 28/06/2011, 00:58
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Utilizar jar en javascript

Cita:
Iniciado por chuidiang Ver Mensaje
¿libApi es el nombre del paquete en el import? ¿Has puesto en el archive de applet el jar con la clase ApiConn? ¿Has puesto este jar en el mismo directorio que la página html?

Se bueno.
Perdón, con las prisas no puse el código que tengo.

Mi applet es el siguiente:

import java.awt.*;
import java.applet.*;
import java.applet.Applet;
import libAPI.*;

public class createUser extends Applet {

public void init() {
ApiConn ret = new ApiConn("10.120.161.63", 80);
}

public void paint(Graphics g) {
g.drawRect(0, 0, getSize().width - 1,getSize().height- 1);
g.drawString(buffer, 5, 15);
}
public void start() {
agregarItem("Inicio Applet. ");
}

}

El código HTML:

<html>
<head>
</head>
<body bgcolor="000000">
<center>
<applet
code= "createUser.class"
width = "500"
height = "300">
</applet>
</center>
</body>
</html>

libApi es el nombre del JAR y se encuentra en el mismo directorio que el HTML.

No se si me dejo algo
  #9 (permalink)  
Antiguo 28/06/2011, 13:04
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Utilizar jar en javascript

Parece que ya esta solucionado y me empiezan a funcionar alfunas funciones.

Hay una que no me funciona es la siguiente

public String login(String name, char[] password) {
this.sendCommand("/login");
String s = "a";
try {
s = this.getData();
} catch (InterruptedException ex) {
Logger.getLogger(ApiConn.class.getName()).log(Leve l.SEVERE, null, ex);
return "failed read #1";
}
if (!s.contains("!trap") && s.length() > 4) {
String[] tmp = s.trim().split("\n");
if (tmp.length > 1) {
tmp = tmp[1].split("=ret=");
s = "";
String transition = tmp[tmp.length - 1];
String chal = "";
chal = Hasher.hexStrToStr("00") + new String(password) + Hasher.hexStrToStr(transition);
chal = Hasher.hashMD5(chal);
String m = "/login\n=name=" + name + "\n=response=00" + chal;
s = this.sendCommand(m);
try {
s = this.getData();
} catch (InterruptedException ex) {
Logger.getLogger(ApiConn.class.getName()).log(Leve l.SEVERE, null, ex);
return "failed read #2";
}
if (s.contains("!done")) {
if (!s.contains("!trap")) {
return "Login successful";
}
}
}
}
return "Login failed";
}

Cuando compilo el applet me da el siguiente error

login(java.lang.String,char[]) in libAPI.ApiConn cannot be applied to (java.lang.String,char)

para llamarla utilizo el comando:

ret.login ("192.168.1.1", "admin")

Como paso los valores a un CHAR[]??
  #10 (permalink)  
Antiguo 28/06/2011, 14:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.773
Antigüedad: 15 años, 1 mes
Puntos: 454
Respuesta: Utilizar jar en javascript

http://download.oracle.com/javase/6/...ng/String.html método toCharArray()

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #11 (permalink)  
Antiguo 30/06/2011, 05:51
 
Fecha de Ingreso: enero-2004
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Utilizar jar en javascript

Estoy probando mi Applet pero me encuentro, como no, con un problema.

Mi applet se conecta a un equipo remoto (dentro de mi LAN) y la seguridad de Java no me lo permite. He visto que para poder hacerlo necesito firmar mi applet, pero si cada vez que haga un cambio quiero problarlo debo generar un JAR y firmarlo, un poco lento mientras estoy desarrollando el Applet.

¿Hay alguna forma para poder hacer las pruebas de forma àgil?
¿hay algún sistema para agilizar la generación y firmar JAR?

Mi estructura es:
/applet.class --> clase principal del applet.
/applet.htm --> llama a applet.class
/alibAPI/ --> contiene las clases que me ha facilitado el fabricante del equipo.

¿Como genero el JAR y como debe quedar el applet.htm?
He visto que la licencia que puedo hacer con java solo es válida para 120 días, ¿como lo hago para que sea para siempre?
  #12 (permalink)  
Antiguo 30/06/2011, 09:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 79
Antigüedad: 8 años, 5 meses
Puntos: 14
Respuesta: Utilizar jar en javascript

Si la web está hecha con tecnología J2EE ya sean JSPs o JSFs no necesitas para nada un applet, es mas, ten en cuenta que con el applet , el usuario final deberá permitir la ejecución del mismo para que tu código se ejecute...
__________________
Web Admin:
http://www.coretec.es
Tutoriales, Noticias y Recursos Liferay y J2EE

Etiquetas: jar, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:08.