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: 19 años, 7 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 (
0this.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());
            
objInput.readObject();
            
objInput.close();
            if (
instanceof ExcepcionGenerica) {
                
clex = (ExcepcionGenericao;
                
/**/
                
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(28pantallaerror.length() - 9).trim();
                    
win.eval(strPantallaError);
                }
                return 
Integer.valueOf(clex.getIntFilaTablaError()).intValue();
            } else
                if (
instanceof Vector) {
                    
this.vectorEntrada = (Vectoro;
                    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(28pantallaerror.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(28pantallaerror.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 servletString argumentosint numColumnasboolean 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 = (VectorobjLeido;
                
String haySiguiente "F";

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

                if (
combo)
                    
haySiguiente "";

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

                    for (
indiceArray 0indiceArray numColumnasindiceArray++) {
                        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((ExcepcionGenericaobjLeido);

                    
String pantallaerror clex.fncMostrarPantallaError().trim();
                    
String strPantallaError pantallaerror.substring(30pantallaerror.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(28pantallaerror.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