logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Applet Java - brak okienka JFileChooser mimo podpisania pliku JAR

p_piotr 02 Mar 2006 16:44 3896 7
REKLAMA
  • #1 2366005
    p_piotr
    Poziom 12  
    Posty: 77
    Pomógł: 1
    Ocena: 5
    Witam!
    Mam problem z appletami w Javie. Otóż wydaje mi się (jak to sprawdzić?), że prywanie udało mi się podpisać applet, umieściłem w tagu APPLET w HTMLu atrybut archve="plik.jar". Ale nadal nie otwiera mi się okienko JFileChooser, które dobrze działa jak uruchamiam applet pod Eclipse'em. No i nie wiem co robić... Sądzę, że ma to związek z ograniczeniami appletów. Wolałbym uniknąć modyfikacji java.policy. Wtedy zaczyna działać. No, ale nie można przecież tak spokojnie wszystkim appletom na wszystko pozwolić... Pomocy....
    Pozdrawiam,
    Piotr
  • REKLAMA
  • #2 2371730
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Przepraszam ale czego oczekujesz od innych? W sumie sam sobie odpowiedziałeś, albo masz aplet podpisany, albo pozwalasz wszystkim apletom na dodatkow operacje na Twoim komputerze na Twoją odpowiedzialność. Innej drogi nie ma, obcy aplet NIE MA PRAWA grzebać w komputerze, domyślnie obcy kod binarny jest niebezpieczny.
  • REKLAMA
  • #3 2375639
    p_piotr
    Poziom 12  
    Posty: 77
    Pomógł: 1
    Ocena: 5
    Witam!
    Przepraszam, może faktycznie trochę niejasno się wyraziłem. Problem miałem z tym, że pomimo podpisania appletu nie mogłem otworzyć JFileChooser. Ale już rozwiązałem ten problem, choć nie rozumiem z czego on wynikał. Doszedłem do tego, że plik .jar, który produkuję przy pomocy jar.exe jest jakiś trefny, bo przeglądarka i tak korzysta z plików .class(jak ich nie było to applet nie ruszał). Jak zrobiłem .jar ręcznie przy pomocy zipa to podpisywanie zagrało i jest OK(ale nie wiem dlaczego tak się dzieje).

    Mam jednak problem z zapisywaniem plików na serwerze. Pobrać plik to jeszcze jakoś pobiorę za pomocą URLConnection (HTTP GET). Problem mam z zapisywaniem właśnie. Jak to zrobić szybko i skutecznie? Myślę o TFTP. Łatwo to w Javie zrobić? Może jakoś inaczej byłoby łatwiej?

    Pozdrowienia,
    Piotr
  • REKLAMA
  • #4 2375731
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    p_piotr napisał:
    Mam jednak problem z zapisywaniem plików na serwerze. Pobrać plik to jeszcze jakoś pobiorę za pomocą URLConnection (HTTP GET). Problem mam z zapisywaniem właśnie. Jak to zrobić szybko i skutecznie?
    Tak samo możesz wysłać na serwer w postaci rządania http, np w postaci parametru metody POST/GET, w ten sposób np działa ładowanie plików do bazy forum.
  • REKLAMA
  • #5 2375826
    p_piotr
    Poziom 12  
    Posty: 77
    Pomógł: 1
    Ocena: 5
    Witam!
    Dzięki za pomoc.
    Hm... tak, generalnie HTTP PUT jest chyba jakimś rozwiązniem, może nawet dobrym. Ale szczerze mówiąc na razie za mało o tym wiem. Czy każdy serwer obsługuje HTTP PUT? Czy są do tego konieczne skrypty CGI czy coś takiego innego dodatkowego? (o CGI nie wiem nic, jutro będę się dokształcał:) ).
    Próbowałem już właśnie w URLConnection w Javie otwierać OutputStream, ale w tym momencie dostaję IOException:(. No i stwierdziełem, że jeszcze za mało wiem.... Będę bardzo wdzięczny za podpowiedzi!
    Pozdrawiam,
    Piotr

    Dodano po 1 [minuty]:

    aaaa pisałeś o HTTP POST... czy tego właśnie używa się do wysyłania formularzy w HTLMu? Czy POSTem można też wysyłać pliki?
  • #6 2375995
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Można przy pomocy POST wgrywać pliki, dokłądnie w ten sam sposób co dane z formularza, tylko nie jestem pewien czy nie ma jakiegoś ograniczenia na rozmiar pliku i pozatym musi być jakiś mechanizm który "coś" z tymi danymi zrobi, np zapisze do pliku albo do bazy. Tak naprawde to nadal nie rozumiem co chcesz robić, bo może jednak protokół FTP będzie dużo lepszym rozwiązaniem.
  • #7 2380495
    p_piotr
    Poziom 12  
    Posty: 77
    Pomógł: 1
    Ocena: 5
    elektryk napisał:
    Tak naprawde to nadal nie rozumiem co chcesz robić, bo może jednak protokół FTP będzie dużo lepszym rozwiązaniem.


    Hej!
    Chcę uruchomić w przeglądarce applet, który pobierze odpowiednie pliki z serwera, wykona odpowiednie operacje i odeśle z powrotem. Pracuję w tej chwili nad tym, żeby to zrobić przez TFTP, bo chyba można w sensownym czasie to zrobić. Z FTP byłoby trudniej. Widziałem na sieci jakieś klasy do FTP, ale zanim się tym zainteresuje popróbuję z TFTP.
    Pozdrowienia,
    Piotr
  • #8 2436172
    p_piotr
    Poziom 12  
    Posty: 77
    Pomógł: 1
    Ocena: 5
    Powyższa sprawa właściwie zamknięta. Wszystko gra po podpisaniu appletu. Uruchomiłem TFTP i jest OK.
    Nie wiem jednak jak w applecie Javy uruchomionym w przeglądarce dowiedzieć sie z jakiego IP został ten applet ściągnięty (chodzi o IP serwera). Ta informacja jest mi niezbędna, a na razie wklepuję to ręcznie w okienko po uruchomieniu appletu. Macie jakieś pomysły?
    Z góry dzięki za podpowiedzi.
    Piotr

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczył uruchomienia okienka JFileChooser w aplecie Java uruchamianym w przeglądarce mimo podpisania pliku JAR. Okazało się, że plik JAR utworzony za pomocą narzędzia jar.exe był nieprawidłowy, natomiast ręczne spakowanie plików klas do archiwum ZIP i podpisanie go rozwiązało problem z uruchomieniem JFileChooser. Dalsza dyskusja dotyczyła przesyłania plików z i na serwer z poziomu apletu. Proponowano wykorzystanie protokołów HTTP (POST/PUT) do wysyłania plików, jednak wymaga to odpowiedniej obsługi po stronie serwera (np. skryptów CGI). Autor zdecydował się na implementację przesyłania plików przez TFTP, uznając ten protokół za prostszy do szybkiego wdrożenia niż FTP. Na koniec pojawiło się pytanie o sposób uzyskania adresu IP serwera, z którego został pobrany aplet, co jest istotne dla konfiguracji połączenia TFTP.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA