![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 575
|
Hallo Forum, ich möchte ein Programm mit einem kleinen Webserver ausstatten um es mit WebStart verteilen zu können. Der Server lauscht also auf einen Port wie ein Webserver und übermittelt bei Anfrage nach der entsprechenden URL die .jnlp-Datei zum Client die dann dort von WebStart geöffnet wird. Soweit kein Problem, wenn ich die entsprechenden Resourcen des Programms aus Firefox heraus aufrufe kann ich diese "downloaden", und die übertragenen Daten sind vollständig und korrekt. Der Webserver scheint also zu funktionieren. Wenn nun aber WebStart die entsprechenden Anfragen stellt kommt es während der Übertragung zu einem Connection Reset. Der kann aber nicht vom Server ausgelöst werden, wie gesagt: mit Firefox funktioniert es problemlos und der Socket wird auch nicht versehentlich geschlossen. Die Anfrage von Firefox für die Datei sieht wie folgt aus: Code: GET /client/lib/hibernate3.jar HTTP/1.1 Host: 127.0.0.1:14000 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080207 Ubuntu/7.10 (gutsy) Firefox/2.0.0.12 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Code: GET /client/lib/hibernate3.jar HTTP/1.1 content-type: application/x-java-archive accept-encoding: pack200-gzip,gzip User-Agent: JNLP/6.0 javaws/1.6.0_03 (b05) Java/1.6.0_03 UA-Java-Version: 1.6.0_03 Host: 127.0.0.1:14000 Cache-Control: no-cache Pragma: no-cache Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive If-Modified-Since: Wed, 31 Dec 1969 23:59:59 GMT Auswerten tu ich die Get- und die Host-Zeile. Zuerst habe ich es mit dem einfachsten Response versucht: Code: HTTP/1.0 200 OK Server: TestServer Content-type: application/x-java-archive +daten Ich habe dann den HTTP-Header noch aufgestockt: Code: HTTP/1.1 302 Found server: TestServer date: Sun, 2 Mar 2008 14:31:13 +0100 last-modified: Sun, 2 Mar 2008 14:31:13 +0100 cache-control: no-cache pragma: no-cache connection: close content-type: application/x-java-archive content-length: 2255753 WebStart stellt die Anfrage weiter oben und der Server schickt erst den Header und anschließend die Daten. Irgendwann kommt es dann zu einem Connection Reset. WebStart zeigt aber keinerlei Fehler an. Da die Daten aber nicht vollständig zum Client übertragen werden gehe ich davon aus, dass die .jar-Datei nicht vollständig ist. Das Programm auf dem Client ist somit inkonsistent. Ich danke euch schonmal. Gruß Sparrow |
| | |
| | Nach oben #2 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Mal so eine Vermutung ins Blaue: irgendwo einen flush() auf dem Server vergessen? Ansonsten aber generell die Frage: Wieso nicht beispielsweise Tomcat?
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #3 | |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 575
| Zitat:
Das Programm soll extrem einfach und schnell zu installieren und verteilen sein. Genau aus dem Grund bringt das Programm einen eigenen Webserver mit um sich selbst via WebStart verteilen zu können. Im geringsten Fall muss der Benuter/Admin das Programm nur auf dem Server starten, das wars. | |
| | |
| | Nach oben #4 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.106
|
Was hälst du davon, einen fertigen HTTP Server zu nehmen? http://simpleweb.sourceforge.net/index.php http://www.savarese.org/software/barehttp/index.html http://tjws.sourceforge.net/ http://javablog.co.uk/2007/10/27/htt...ort-to-java-5/ ... |
| | |
| | Nach oben #5 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Das meine ich ja auch mit Tomcat. Den kann man ebenso gut mit ausliefern und halt so konfigurieren, dass es wie ein eingebauter Webserver ausschaut. Der Vorteil ist natürlcih, dass das für die Zukunft auch sehr flexibel ist und es ist wohl deutlich leichter für dich, da der Tomcat in sich stabil und gut ist.
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #7 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Such mal nach Java Web Start Proxy. Das macht sowas ähnliches, wenn auch um eine Art Proxy zu sein, der sich woanders die Jar-Files herholt und dann wieder zur Verfügung stellt. Aber das liesse sich anpassen. Das ganze kenne ich von meinem Arbeitgeber und ich meine auch, dass er der Java-Community oder Sun mal als Open-Source zur Verfügung gestellt wurde. Das Internet sollte Aufschluss geben.
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #8 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 575
|
Hmm.. mich wurmt es irgendwie, dass meine Lösung nicht funktioniert. Hier mal der entsprechende Code meiner Methode auf dem Server java Code:
Geändert von sparrow (04.03.2008 um 13:05 Uhr). |
| | |
| | Nach oben #9 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Ich würde dir empfehlen, die Daten immer Stückweise zu verschicken, nicht jedes Byte/int einzeln. baue dir beispielsweise ein Byte-Array: byte[] buf = new byte[2048]; Das geht um ein vielfaches schneller und eventuell behebt das damit bereits dein Problem. Achja: Wo ist das flush?
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #10 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 575
|
Das Problem besteht leider weiterhin. java Code:
Nach einigen Tests glaub ich, dass das ganze mit dem Cache von JavaWS zusammen hängt. Zumindest scheint es so als würde WS die Datei noch einmal anfordern wenn es ein Problem mit dem Archiv gibt. Dann läuft der Download auch durch. |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [JAVA] Wie man aus Java mit einem PHP-Script kommuniziert | sparrow | Tutorials | 0 | 25.03.2006 22:24 |
| [BUCH] Java ist auch eine Insel | kampet | Literatur | 5 | 22.02.2005 14:40 |
| FTP Client in Java? | tuxsymptom | Allgemeine Java-Programmierung | 4 | 14.08.2004 22:06 |
| Zwist um Java als Open Source | kampet | Nachrichten | 0 | 05.07.2004 03:37 |