Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/08/2005, 08:36
Avatar de Ani Alamo
Ani Alamo
 
Fecha de Ingreso: julio-2005
Mensajes: 35
Antigüedad: 21 años, 3 meses
Puntos: 1
Puedes hacer la llamada al applet y dentro de ella, invocar a un servlet de por medio, donde los puntos o lo que quieras del applet, puedas escribirlos a través del canal de comunicaciones del mismo servlet <<outputStream>> guardándolos en un vector de objetos si así lo quieres, e internamente lo procesas y si quieres retornas nuevamente el valor resultado al mismo applet o todo lo que tú quieras hacer con ello.
Puedes usar como referencia esta clase Java y este applet, y luego tú le das forma para tu aplicación:



Código PHP:
package myPackage;

public class 
AppObjJavaScript extends Applet {

    private static 
String strError = "Error";
    private 
JSObject win;
    private 
Vector vectorSalida = new Vector();
    private 
Vector vectorEntrada = new Vector();

    public 
AppObjJavaScript() {}

    public 
String devolverDatos() {

        
int i;
        
StringBuffer strRespuesta = new StringBuffer();
        if (
this.vectorEntrada.size() == 0)
            return 
"Ningun valor devuelto";
        else {
            if (
this.vectorEntrada.size() > 1)
                for (
i = 0; i < this.vectorEntrada.size(); i++) {
                    try {
                        
strRespuesta.append(this.vectorEntrada.elementAt(i).toString());
                        
strRespuesta.append(clsConstantes.DELIMITADOR_COMPONENTE);
                    } catch (
Exception e) {
                    }
                } else
                
strRespuesta.append(this.vectorEntrada.elementAt(0).toString());
        }
        return 
strRespuesta.toString();
    }

    public 
int enviarDatos(String strUrl) {
        
URL con = null;
        
URLConnection conAbierta = null;
        
ObjectOutputStream objOutServlet = null;
        
ObjectInputStream objInput = null;
        
Object o = null;
        
ExcepcionGenerica clex = null;
        
String strPantallaerror = "";
        
String pantallaerror = "";
        
String strPantallaError = "";

        try {
            
con = new URL(strUrl);
            
conAbierta = con.openConnection();
            
conAbierta.setDoInput(true);
            
conAbierta.setDoOutput(true);
            
conAbierta.setUseCaches(false);
            
conAbierta.setRequestProperty("Content-Type", "application/octet-stream");

            
// Obtiene el canal de escritura
            
objOutServlet = new ObjectOutputStream(conAbierta.getOutputStream());

            
// Escribe en el canal
            
objOutServlet.writeObject(this.vectorSalida);
            
objOutServlet.flush();
            
objOutServlet.close();

            
// Vacia el vector de salida
            
this.vectorSalida = null;
            
this.vectorSalida = new Vector();

            
// Espera de resultado
            
objInput = new ObjectInputStream(conAbierta.getInputStream());
            
o = objInput.readObject();
            
objInput.close();
            if (
o instanceof ExcepcionGenerica) {
                
clex = (ExcepcionGenerica) o;
                
/**/
                
System.out.println("Error de tipo ExcepcionGenerica --> " + clex.getBolErrorControlado());
                
// En función del tipo de error se muestra una pantalla de error u otra
                
if (clex.getBolErrorControlado()) {
                    
strPantallaerror = "window.showModalDialog('/html/errores/avisousuario.html','" + 
                       
clex.getStrError() + "','dialogWidth:300px;dialogHeight:175px;status:no;help:no;resizable:no');";
                    
win.eval(strPantallaerror);
                } else {
                    
pantallaerror = clex.fncMostrarPantallaError().trim();
                    
strPantallaError = pantallaerror.substring(28, pantallaerror.length() - 9).trim();
                    
win.eval(strPantallaError);
                }
                return 
Integer.valueOf(clex.getIntFilaTablaError()).intValue();
            } else
                if (
o instanceof Vector) {
                    
this.vectorEntrada = (Vector) o;
                    return -
1;
                } else
                    return -
1;
        } catch (
java.io.IOException e) {
            
System.out.println("catch IO: Error de tipo Excepcion Generica --> " + e.getMessage());
            
clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " + e.getMessage());

            
pantallaerror = clex.fncMostrarPantallaError().trim();
            
strPantallaError = pantallaerror.substring(28, pantallaerror.length() - 9).trim();

            
win.eval(strPantallaError);
            return 
0;

        } catch (
Exception e) {
            
/**/
            
System.out.println("catch: Error de tipo Excepcion Generica --> " + e.getMessage());
            
clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " + e.getMessage());

            
pantallaerror = clex.fncMostrarPantallaError().trim();
            
strPantallaError = pantallaerror.substring(28, pantallaerror.length() - 9).trim();

            
win.eval(strPantallaError);
            return 
0;
        }
    }


    public 
String getAppletInfo() {
        return 
"Carga una serie de componentes de la factoría de presentación";
    }

    public 
String[][] getParameterInfo() {
        return 
null;
    }
    public 
void init() {
        try {
            
System.out.println("Applet de factoria cargado.");
            
jbInit();
        } catch (
Exception e) {
            
e.printStackTrace();
        }
    }

    private 
void jbInit() throws Exception {
        
win = JSObject.getWindow(this);
    }

    public 
String obtenerDatoCompuesto(String servlet, String argumentos, int numColumnas, boolean combo) {
        
ObjectInputStream objIn = null;
        
Object objLeido = null;
        
Vector vectorArrayObjetos = new Vector();
        
Object arrayObjetos[];
        
String strValorDevuelto = "";
        
int indiceArray;
        
ExcepcionGenerica clex = null;

        
//Llamo al servlet
        
try {
            if (!
argumentos.equalsIgnoreCase(""))
                
argumentos = "?" + argumentos;

            
URL con = new URL(servlet + argumentos);
            
URLConnection conAbierta = con.openConnection();

            
conAbierta.setDoInput(true);
            
conAbierta.setUseCaches(false);
            
conAbierta.setRequestProperty("Content-Type", "application/octet-stream");

            
//Leer Datos del Servlet
            
objIn = new ObjectInputStream(conAbierta.getInputStream());

            
objLeido = (Object) objIn.readObject();
            
objIn.close();

            if (
objLeido instanceof Vector) {
                
vectorArrayObjetos = (Vector) objLeido;
                
String haySiguiente = "F";

                
// Comprobar si manda información de paginación.
                
if (vectorArrayObjetos != null && vectorArrayObjetos.size() > 0 && vectorArrayObjetos.elementAt(0) 
                          instanceof 
Boolean) {
                    if (((Boolean) 
vectorArrayObjetos.elementAt(0)).booleanValue())
                        
haySiguiente = "T";
                    else
                        
haySiguiente = "F";
                    
vectorArrayObjetos = (Vector) vectorArrayObjetos.elementAt(1);
                }

                if (
combo)
                    
haySiguiente = "";

                for (
int indiceVector = 0; indiceVector < vectorArrayObjetos.size(); indiceVector++) {
                    
arrayObjetos = (Object[]) vectorArrayObjetos.elementAt(indiceVector);

                    for (
indiceArray = 0; indiceArray < numColumnas; indiceArray++) {
                        if (
arrayObjetos[indiceArray] == null)
                            
strValorDevuelto += " " + clsConstantes.DELIMITADOR_CAMPO;
                        else
                            
strValorDevuelto += arrayObjetos[indiceArray].toString() + clsConstantes.DELIMITADOR_CAMPO;
                    }

                    
strValorDevuelto += clsConstantes.DELIMITADOR_FILA;
                }

                if (
strValorDevuelto.length() > 2)
                    
strValorDevuelto = haySiguiente + strValorDevuelto.substring(0, (strValorDevuelto.length() - 2));
            }
            else
                if (
objLeido instanceof ExcepcionGenerica) {
                    
// capturamos la ClsExcepcion
                    
clex = new ExcepcionGenerica((ExcepcionGenerica) objLeido);

                    
String pantallaerror = clex.fncMostrarPantallaError().trim();
                    
String strPantallaError = pantallaerror.substring(30, pantallaerror.length() - 9).trim();

                    
win.eval(strPantallaError);

                }
                else
                    
strValorDevuelto = strError;

        } 
//fin del try

        
catch (Exception excServlet) {
            
//clex = new ExcepcionGenerica("ERROR en la comunicación con el Servlet (datoSimple): " + excServlet.getMessage());
            
clex = new ExcepcionGenerica(excServlet.getMessage());
            
String pantallaerror = clex.fncMostrarPantallaError().trim();
            
String strPantallaError = pantallaerror.substring(28, pantallaerror.length() - 9).trim();
            
win.eval(strPantallaError);

            
strValorDevuelto = strError;
        }
        
finally {
            
objIn = null;
            
objLeido = null;
            return (
strValorDevuelto);
        }
    } 
continúa .............
__________________

Ani Alamo Gómez de González


"Sin Dios no soy nada en este mundo, sin El nada puedo ser... ni las hojas de los árboles se mueven, sino es por su gran poder. Bendito seas Señor."

Última edición por Ani Alamo; 17/08/2005 a las 08:44