Witam
Nie wiem co jest grane, ale nie mogę połączyć się aplikacją klienta z serwerem kiedy odpalam klienta jako aplet w przeglądarce. Kiedy uruchomiłem aplet w eclipse to nie ma problemu.
kody obydwu są tu:
Proszę o pomoc
Witam
Nie wiem co jest grane, ale nie mogę połączyć się aplikacją klienta z serwerem kiedy odpalam klienta jako aplet w przeglądarce. Kiedy uruchomiłem aplet w eclipse to nie ma problemu.
kody obydwu są tu:
Proszę o pomoc
Sprawdzałem na przeglądarce IE oraz FF i to samo tzn. nie ma połączenia. Aplet ładuje się do przeglądarki, klikam na przycisk tego apletu i nie łączy. Bez sensu to jest zawsze jakieś problemy.
obydwie aplikacje tj. serwer i applet client uruchamiane są na tym samym komputerze. Podczas ładowania apletu przeglądarka pyta się czy zezwolić na uruchomienie to zawsze daję, że zgadzam się. Wszystko tak jakby było w porządku ale nie mogę się połączyć. Klikam na przycisk i nie ma połączenia.
Na operze działa, na FF nie sprawdzę (u mnie FF w ogóle nie uruchamia apletów), na IE można obejrzeć na konsoli Javy taki komunikat
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:2000 connect,resolve
Twój aplet nie jest podpisany. Ty wyrażasz zgodę (w IE zapewne) na uruchomienie apletu, a nie na to by aplet mógł więcej. Podpisywane są pliki jar, zatem znacznik applet dla uruchamiania podpisanych apletów wygląda tak:
<applet ... archive="pewien.jar" ...>
</applet>
Na swojej maszynie dodatkowe uprawnienia możesz uzyskać przez dopisanie pewnych wierszy w pliku ..lib/security/java.policy
Dla pary twoich programów wystarczy dodać wiersz:
permission java.net.SocketPermission "localhost:1024-", "connect";
Jak wejść do tej konsoli Javy na IE ?
Chcę żeby bez żadnych ograniczeń uruchamiały się aplety oraz żeby nie było żadnego ograniczenia co do adresu internetowego i portu komunikacyjnego
Panel sterowania => Java => Advanced => Java console, i zaznacz Show console.
Podpisz aplet, poszukaj (np. na forum) jak się to robi.
Podpisałem aplet i zrobiłem go bardziej uniwersalnym (dodałem pytanie o host i port) i bez problemów łączy się z dowolnym hostem, na którym miałem prawo umieścić i odpalić MyServer.
Zobacz jak wygląda uruchomienie podpisanego ("prywatnie") apletu i jak się łączy z dowolnym EchoSerwerem. http://atos.wmid.amu.edu.pl/~bogdan/applets/PodpisanyAplet.php
dziękuje za wskazówki jak to uda mi się rozgryźć to napiszę
Chodzi mi tylko o aplikacje klienta. Chcę by działała bez problemu tzn. po pobraniu strony WWW czy to z odległego serwera jakiegoś czy bezpośrednio z dysku komputera na którym jest uruchomiony i żeby użytkownik nic nie grzebał w konfiguracji oprócz prostego potwierdzenia zgody na uruchomienie apletu.
Po załadowaniu strony WWW przeglądarka pyta się czy "zezwolić temu plikowi na uruchamianie
zawartości aktywnej" więc daję Tak. Pojawia się ten aplet w oknie przeglądarki. Następnie klikam na przycisk "Połącz" i w tym momencie aplikacja nie odpowiada przez ok. 10 sekund po czym w konsoli wyburacza mi takie śmieci:
Exception in thread "AWT-EventQueue-2" java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.1.10:500 connect,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at MyClient.actionPerformed(MyClient.java:64)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
A tu źródło strony WWW:
<html>
<head>
<title>Applet Client</title>
</head>
<body bgcolor="#EFEFEF" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<center><h0>Client Fatek V0.1</h0></center>
<center><applet width="150" height="120" code="MyClient.class"></applet></center>
</body>
</html>
Sukces ! Rozgryzłem [browar]
Faktycznie trzeba podpisać cyfrowo applet. Naprawdę nie jest to skomplikowane i szybko się to robi.
Zapoznajcie się z tekstem pod tym adresem http://www.linuxstorm.org/modules/sections/index.php?op=viewarticle&artid=78 w części INSTALUJEMY APPLET. Od siebie dodam, że archiwum jar tworzy się za pomocą komendy jar (dostępna w pakiecie JDK):
jar cf archiwum.jar klasa1.class klasa2.class ...
To archiwum jar u mnie tworzy się w dziwnym miejscu ale od czego jest wyszukiwarka windowsowa - znajdziecie.
Jeżeli chodzi o stronę WWW w html, która ładuje applet to musi być tego typu (różni się od podanej wcześniej):
<html>
<head>
<title>Applet Client</title>
</head>
<body bgcolor="#EFEFEF" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<center><h0>Client Fatek V0.1</h0></center>
<center><applet width="150" height="150" code="MyClient.class" codebase="." archive="MyClient.jar"></applet></center>
</body>
</html>
Powodzenia
Pozdrawiam :-)
Napisałem
Twój aplet nie jest podpisany. Ty wyrażasz zgodę (w IE zapewne) na uruchomienie apletu, a nie na to by aplet mógł więcej. Podpisywane są pliki jar, zatem znacznik applet dla uruchamiania podpisanych apletów wygląda tak:
<applet ... archive="pewien.jar" ...>
</applet>
Mam wrażenie, że zadajesz pytania, ale odpowiedzi nie czytasz. Jeżeli potrzebujesz bardzo szczegółowych odpowiedzi, to pytaj w dziale Newbie.
bo dziękuję. [browar]
Czytałem to ale wcześniej nie myślałem o archiwach jar byłem zaślepiony tylko plikami class.
Dopiero teraz mniej więcej zakapowałem o co biega.
Pozdrawiam