Προς το περιεχόμενο

Applets και JDBC


Cue

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω γράξει ένα applet που σε μία κλάσση Database

χρησιμοποιεί μια JDBC driver class για να κάνει connect σε μια remote database.

 

Το έχω κάνει upload σε μια σελίδα, αλλά με το που φορτώνει παρουσιάζει java.security.AccessControlException.

 

 

Η σελίδα που το έχω κάνει upload είναι στο χώρο που μου έχει δώσει το Uni και η Database βρίσκεται στον υπολογιστή μου σπίτι.

Γιατί αυτό? :\

 

Ευχαριστώ εκ των προτέρων.

Δημοσ.

Δεν έχω, όχι.

 

Κάτι πρέπει να παίζει με security policies. Αλλά τι ακριβώς....

 

Προσπαθώ να βρω άκρη και μέσω νετ.

 

Thanks για την γρήγορη απάντηση. Αν έχεις κάτι να προτείνεις ή κάποιος άλλος...

Δημοσ.

Γεια χαρα!

Λοιπον αυτο που βλεπεις δεν ειναι τιποτα..αλλο απο το περιφημο και για πολλους παραλογικο (ετσι λενε) Java sandbox security model. Το applet οταν τρεχει στον remote client στον Browser δεν εχει το δικαιωμα να ανοιξει ποθουνα connection ουτε αρχειο ουτε τιποτα..στο pc που τρεχει παρα μονο με τον μηχανημα που το servire δηλαδη τον server που υπαρχει.

Eσυ απο το applet προσπαθεις να τρεξεις κατεβαινει απο τοn server του Uni και προσπαθει μετα με JDBC Να συνδεθει σε μια remote τοποθεσια (στο σπιτι σου) οπουθ υπαρχει η db.,Sorry αλλα αυτο ειναι απογορευμενο ...για security λογους.Εχουμε αναφερθει παλιοτερα στο security model ..επισης μπορεις να δεις και στα αντιστοιχα tutorial για αυτο. Βαλε την βαση στο μηχανημα που servirei to applet και προσπαθησε να κανεις το ιδιο..λογικα ολα θα πανε καλα!

 

Καλη τυχη!

Καλα να Java-ρεις!

 

Δημοσ.

Ευχαριστώ για την απάντηση. Όντως αυτό βρήκα και εγώ.

Αλλά είδα κάτι για Signed Applets που είναι για αυτή τη δουλειά. Τώρα το κοιτάω.

 

Το να κάνω τον Web Server, Database Server as well, δεν είναι λύση, αλλά workaround <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/wink.gif" alt="" />

Δημοσ.

κοιτα να δεις δεν ξερω σε τι context Μιλαμε αλλα δεν πιστευω οτι στηνεις και καμια βαρια enterprise οπου εχει τρελλες απαιτησεις τοσο μεγαλες που να χρειαστει να εχεις διαφορετικα μηχανηματα για βαση και web server.

Εδω μερικες φορες ο κοσμος μπερδευεται και οταν μιλαςι για καθαρα client - server εφαρμογες μπλεκει μεσα ορολογια και χαρακτηριστικα αλλων μοντελων πχ 3-tier. Σε μια 3-tier εφαρμογη οπου εκτος απο τον db server εχεις και τον application ή whatever server που θα αναλαθει το σκληρο εργο της λογικης στην εφαρομογη σου τοτε ναι μπορεις να πεις οτι για λογους πχ δυνατοτητων και distribution τα μηχανηματα θα ειναι διαφορετικα και μαλιστα σε διαφορετικα σημεια!

 

Στη περιπτωση σου υποθετω μια καθαρα client - server εφαρμογη (συνεχιζω να υποθετω) οπου ο client ειναι ουσιαστικα ο browser και η λογικη ειναι σε αυτον (o web server απλα σερβιρει την λογικη δνε την επερξεργαζεται) και επισης εχεις και καπου μια βαση οπου της τρεχεις καποια SQL statements. Υποθετω οτι κατι τετοιο πραγματευεσαι..μπορει να κανω λαθος ..

 

Αρα θεωρω λιγο υπερβολικ οτο χαρακτηρισμo work around Και τους ορους web server και db server .

 

 

Δημοσ.

Ωστέ δεν υπάρχει άλλη λύση Γηρυόνη...

 

Κοίτα να δεις apoc, το συγκεκριμένο είναι απλά το final year project που έχω να κάνω, απλά το target είναι να γίνει μια Enterprise Αpplication που θα εξυπηρετεί τις ανάγκες τις BT.

Δημοσ.

Δυστυχώς αυτό είναι ένα μειονέκτημα/πλεονέκτημα (όπως το πάρει κάποιος) των Applets, δεν μπορούνε να επικοινωνήσουνε παρά μόνο με το διακομιστή στον οποίο βρίσκονται/βρίσκεται τα/το class αρχεία/αρχείο. Τώρα αν έχεις μία dedicated βάση κατανεμημένη και χρειάζεται οπωσδήποτε να επικοινωνήσεις με αυτή υπάρχουνε άλλα workarounds. Πάντως αυτό γίνεται συνήθως σε μεγάλα enterprise συστήματα τα οποία χρειάζεται να χειριστούνε χιλιάδες χρήστες κάθε ημέρα.

 

Όπως είπε και ο φίλος άποκ πιο πάνω αν έχεις ένα απλό σύστημα μπορείς να τρέχεις και βάση, και web server και application server πάνω στο ίδιο μηχάνημα. Πάντως αν πραγματικά η εφαρμογή σου είναι enterprise μπορούμε να βρούμε workaround.

Δημοσ.

Αν θελεις να δωσεις μια enterprise χροια..στο project σου τοτε θα πρεπει να σχεδιασεις την εφαρμογη σου με αλλα μοντελα! Οταν μιλαμε για Lagre enterprise εφαρμογες ξεφευγουμε τωρα πια απο το κλασικο client -server και παμε σε 3-τιερ Η και n-tier.

Το project αν εχει τετοιες προοπτικες τοτε πρεπει να δει λιγο to j2ee κτλ κτλ η ακομα και τον χωρο των web services!

 

To security model της Java ειναι αυστηρο..Και ισως θα επρεπε να το γνωριζεις πρωτου την σχεδιασεις..την εφαρμογη γιατι τωρα ειναι λογικο να ωθησει να αλλαξεις κατι!

Δημοσ.

Τι εννοείς με τον όρο n-tier, γιατί δε τον έχω ξανακούσει.

 

Βασικά οι επιλογές είναι limited και αυτό γιατί η application πρέπει να γραφτεί σε JDK 1.1.8 το πολύ.

 

Για JSP το ξεχνάμε γιατί δεν υποστηρίζεται για αυτό που θέλω να κάνω.

 

Για servlet, προφανώς είναι παραπάνω δουλειά απ'όσο χρειάζεται.

Δημοσ.
Γηρυόνης

said:

Δεν υπάρχει άλλη λύση (ακόμα και να κάνεις sign την applet σου). Ή πηγαίνεις τη βάση στο πανεπιστήμιο ή φέρνεις την applet σπίτι σου.

 

Βασικά το παραπάνω δεν είναι απολύτως σωστό, αγνόησέ το. Σε προ java 1.1.0 εκδόσεις δεν υπήρχε τρόπος να το κάνεις, όντως. Το μοντέλο ασφάλειας όμως του jdk1.1.x σου παρέχει τη δυνατότητα να υπογράψεις (sign) την applet σου και να ανοίξεις μία σύνδεση σε ένα διακομιστή που τρέχει σε άλλη IP διεύθυνση (δεδομένου ότι οι χρήστες θα δώσουνε τη συγκατάθεσή τους επίσης). Από τη στιγμή που θέλεις να τρέξεις μέχρι jdk1.1.8 και η εξ ορισμού έκδοση java σε πλοηγούς το υποστηρίζει δε θα πρέπει να υπάρχει πρόβλημα.

Δημοσ.
Cue

said:

Τι εννοείς με τον όρο n-tier, γιατί δε τον έχω ξανακούσει.

 

Για JSP το ξεχνάμε γιατί δεν υποστηρίζεται για αυτό που θέλω να κάνω.

 

Για servlet, προφανώς είναι παραπάνω δουλειά απ'όσο χρειάζεται.

 

Ο n-tier όρος σημαίνει ότι διαιρείς το σύστημά σου σε "επίπεδα". Κάθε επίπεδο κάνει και μία συγκεκριμένη δουλειά. Π.χ. το επίπεδο της βάσης είναι υπέυθυνο για βάσεις δεδομένων, το επίπεδο του web (web tier) είναι υπεύθυνο για την παραγωγή HTML κ.ο.κ.

 

Αφού δεν υποστηρίζει JSP τότε δεν υποστηρίζει ούτε Servlets.

 

Cue

said:

Το έχω κάνει upload σε μια σελίδα, αλλά με το που φορτώνει παρουσιάζει java.security.AccessControlException.

 

Τί ακριβώς μήνυμα λάθους σου βγάζει; Λογικά θα πρέπει να το λύσεις αν αλλάξεις το java.policy αρχείο σου.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...