Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Error] Error: Error calling method on NPObject.

    Salve,
    Ho un problema con un applet e js, uso netbeans e glassfish, quando faccio l'applet in locale funziona tutto, invece se faccio connettere un altro pc non funziona e mi da questo errore [Error] Error: Error calling method on NPObject.
    encrypt (admin.html, line 53)
    non risco a capire quel'e' il problema; Utilizzo i websocket infatti la connessione funziona ma non va l'applet, pero non mi torna che funziona localmente che sbaglio?
    Grazie

    codice HTML:
      <script language="Javascript">
            function accessAppletMethod()
            {
                var t = "dati";
                var risp = document.Applet.encrypt(t);
    
                webSocket.send(risp);
            }
            var webSocket;
            var messages = document.getElementById("messages");
    
            var risultato = "";
            function openSocket() {
    
    
                // Ensures only one connection is open at a time
                if (webSocket !== undefined && webSocket.readyState !== WebSocket.CLOSED) {
                    writeResponse("WebSocket is already opened.");
                    return;
                }
                // Create a new instance of the websocket
                webSocket = new WebSocket("ws://pingamitutto.ddns.net:8080/bechini/socketadmin");
    
                /**
                 * Binds functions to the listeners for the websocket.
                 */
                webSocket.onopen = function (event) {
                    // For reasons I can't determine, onopen gets called twice
                    // and the first time event.data is undefined.
                    // Leave a comment if you know the answer.
                    if (event.data === undefined)
                        return;
    
                    writeResponse(event.data);
                };
    
                webSocket.onmessage = function (event) {
    
                    var risp = document.Applet.encrypt(event.data.toString());//problema
    
                    webSocket.send(risultato);
                    alert("un lavoro completato");//here the string have the correct length
    
    
                };
    
                webSocket.onclose = function (event) {
                    writeResponse("Connection closed");
                };
            }
    
            /**
             * Sends the value of the text input to the server
             */
    
    
    
    
        </script>
        <head>
            <title>TODO supply a title</title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
        </head>
        <body onload="openSocket();">
    
            <div id="messages">
                <p>   sei connesso al server a breve ti arriva materiale da elaborare</p>
            </div>
    
    
            <!-- C:\Users\lorenzo §\Documents\NetBeansProjects\bechini\build\web\WEB-INF\classes -->
            <!--a href="../build/web/WEB-INF/classes/App.class"></a-->
        <applet width="300" height="100" top="400" id="Applet" code="App.class">
        </applet>
        <div id="messages"></div>
    </body>

    questa e' l'applet


    import java.applet.Applet;
    import org.apache.commons.codec.binary.Base64;
    import java.security.InvalidAlgorithmParameterException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    import javax.crypto.*;
    import javax.crypto.spec.SecretKeySpec;
    import javax.swing.JOptionPane;
    import netscape.javascript.JSObject;

    public class App extends Applet {
    public boolean encrypt(String messaggio) {
    JSObject window = JSObject.getWindow(this);
    String pass = messaggio.substring(0, 16);
    String file = messaggio.substring(16);
    byte[] byteDataToEncrypt = Base64.decodeBase64(file);
    byte[] byteCipherText = null;
    byte[] key = stringToByte(pass); //new byte[128/8]; ERRORE
    try {
    Cipher aesCipher = Cipher.getInstance("AES");//DICE INVALIDA KEY
    aesCipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), aesCipher.getParameters());//DICE INVALIDA KEY
    byteCipherText = aesCipher.doFinal(byteDataToEncrypt);
    } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException e) {
    JOptionPane.showMessageDialog(null, "ECC " + e);
    }
    messaggio = Base64.encodeBase64URLSafeString(byteCipherText);
    window.setMember("risultato", messaggio.substring(0, messaggio.length() / 2));
    return true;
    }
    public static byte[] stringToByte(String s) {
    byte[] b = new byte[s.length()];
    for (int i = 0; i < s.length(); i++) {
    b[i] = (byte) s.charAt(i);
    }
    return b;
    }
    public static String byteToString(byte[] b, int size) {
    char[] c = new char[size];
    for (int i = 0; i < size; i++) {
    c[i] = (char) b[i];
    }
    return new String(c);
    }
    }

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, per esperienza al 90% quando ci sono problemi/errori sono lato server. Io chiedere d'essere spostato nel forum java (segnala adesso) se dovessero escludere errori lato java potrai sempre ritornare qui.

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.