Newsgroup: it.comp.java
Titolo: Applet SQL

Ho scritto una applett che si interfaccia ad un database SQL attraverso
JDBC e fin quì tutto ok... funziona, esegue correttamente le query e
tutto il resto finchè gira nell'appletviewer, ma quando la butto in una
pagina web il mio bravo Netscape Communicator 4.04 mi risponde con un
checkpropskey Security Error !!! Ciò naturalmente quanto l'applett va a
caricare il Driver per il mio database.... Come posso risolvere il
problema???
    Roberto

 checkpropskey Security Error !!! Ciň naturalmente quanto l'applett va a


   
La cosa piu' probabile e' che il tuo driver JDBC cerchi di caricare una libreria dinamica dal disco locale: usa un driver 100% java oppure una signed applet.
Saluti,
	CS
-- 
Cristiano Sadun
Software Engineering & Consulting
email address: cris#sun6$itim$mi$cnr$it 
(for actual address please replace # by @ and $ by .)

 
Il problema e' che devi costruirti un modello CLient/Server. Il server
e' quello che si interfaccia al DB, mentre il client sara' l'applet che
girera' su browser. Il client comunichera' con il server tramite socket.
Guarda su Mokabyte l'articolo di F. Bobbi....
Ciaoo...
-- 
 ______                 ______                
 ___  /_ ______ ___________  /_______ ________
 __  __ \_  __ `/_  ___/__  //_/_  _ \__  ___/
 _  / / // /_/ / / /__  _  ,<   /  __/_  /    
 /_/ /_/ \__,_/  \___/  /_/|_|  \___/ /_/     
 
                      ______         ______                 
                      ___  /_ ______ ___  /_ ______ ________
                      __  __ \_  __ \__  __ \_  __ \__  ___/
                      _  / / // /_/ /_  /_/ // /_/ /_(__  ) 
                      /_/ /_/ \____/ /_.___/ \____/ /____/

..... credo tu non abbia capito....... Sono al corrente che l'applet può
connettersi solo all'host dal quale è stata scaricata la pagina in cui
gira, il problema è che l'host che funge da web server è lo stesso che
funge da sql server !!! Non è quindi un classico problema di sicurezza
relativo alle applet... è qualcosa di diverso! Faccio notare che
naturalmente il server sql (per la precisione PostgreSQL 6.2.1)
necessita del suo driver JDBC residente nella classe postgresql.Driver
ed è il metodo
    Class.forName(String)
che crea l'eccezione, ossia caricando la nuova classe per nome!
HELP!!!!!!!!!!!!!!

 
Saluti
Max

         CS
Per quanto riguarda il mio driver dovrebbe essere 100% pure java perchč l'ho compilato io personalmente ( a meno che un driver per un db che gira sotto linux
utilizzi librerie native pari pari a quelle presenti sotto win95 poichč quest'ultimo č stato l'ambiente di compilazione... se vuoi ti mando i sorgenti del
driver...).Invece sulle signed applet sono terra terra e gradirei un corso accelerato da parte tua (non sono uno zero e so consultare le documentazioni perň una
mano la gradirei essendo in alto mare sull'argomento... :-) ).
Per il momento ho risolto inserendo un terzo elemento in gioco, ho scritto una applicazione java che gira sul server... č lei ora a caricarsi il driver per il
database e quindi Netscape non genera piů alcuna eccezione. Ora perň sto lottando con IExplorer (versione 3.02 per la precisione) che mi tira fuori un
VerifyError!!! Sapete come aggirare il problema????

         Cris
Questo è l'output sulla java consolle del Commonucator 4.04 impostata
a debug level 9:
# initApplet: contextID=2 appletID=12510352 parentContext=12374720
frameContext=12374720
# New applet context: 
http://excess.siasys.it/test/
, contextID=2
# Initializing applet: Query.class, appletID=12510352, contextID=2
#   docURL=
http://excess.siasys.it/test/
 reloadClasses=false
#     total applets=1
#     New applet: 12510352 at 
http://excess.siasys.it/test/
 width=600
height=600 hspace=0 dbdriver=postgresql
url=jdbc:postgresql://
excess.siasys.it:7777/gordon1
archive=
http://excess.siasys.it/test/postgresql.jar
 vspace=0 passwd=
align=center codebase=
http://excess.siasys.it/test/
 code=Query.class
user=
# startApplet: contextID=2 appletID=12510352
newFrameMWContext=12374720
# Starting applet: Query, appletID=12510352, contextID=2
#   new class loader netscape.applet.AppletClassLoader@800c8a1
# context = netscape.applet.MozillaAppletContext@800b861
# codebase = 
http://excess.siasys.it/test/
# archive = 
http://excess.siasys.it/test/postgresql.jar
# Loading classes from downloaded archive file:
http://excess.siasys.it/test/postgresql.jar
# Loading class Query
# Fetching 
http://excess.siasys.it/test/Query.class
# Applet Query loaded
# Loading class SQLTest
# Fetching 
http://excess.siasys.it/test/SQLTest.class
# Loading class postgresql.Driver
# Loaded postgresql/Driver.class from
http://excess.siasys.it/test/postgresql.jar
# Security Exception: checkpropsaccess.key
# Loading class postgresql.Connection
# Loaded postgresql/Connection.class from
http://excess.siasys.it/test/postgresql.jar
# Loading class postgresql.PG_Stream
# Loaded postgresql/PG_Stream.class from
http://excess.siasys.it/test/postgresql.jar
# Loading class postgresql.ResultSet
# Loaded postgresql/ResultSet.class from
http://excess.siasys.it/test/postgresql.jar
# Applet Query initialized
# Applet Query running
Per quanto riguarda il VerifyError hai ragione, sto usando un
ambiente 1.1 per compilare (anche se il sorgente è 1.0.2
compatibile... Proverò a compilarlo con un jdk 1.0.2 se riesco a
trovarlo da qualche
parte.... :-)
Per l'appletviewer gira anche se non è unrestricted (d'altronde non
necessita di particolari privilegi....).
Per il CLASSPATH, il driver, quando testato in locale, era nella
stessa directory dell'applet , non ho provato a lanciare l'applet da
remoto con l'appletviewer, ci proverò comunque....
Per quanto riguarda il driver: il database è sotto licenza GNU ossia
pubblico ed è stato sviluppato da due comuni mortali, non da uno
staff di programmatori altamente qualificati quindi potrebbe anche
essere bacato, ma non credo poichè la documentazione non ne parla
mentre nelle precedenti versioni ogni potenziale baco era
documentato. Questa dovrebbe essere una release stabile del driver
quindi non
credo sia questo il problema. Scarta questa ipotesi che può essere
applicata solo al secondo progetto a cui sto lavorando: una
servlet... In questo caso il driver è bacato ed il bug è
documentato...
(misera consolazione :-( ).
Ad ogni modo grazie, mi stai dando veramente una mano... non me ne
dimenticherò. Se ti servisse qualcosa fammi sapere.
        --- Roberto