Java 6 Webservice langsam?

meckiebro

Mitglied
Hi,
Ich habe einen kleinen Webservice geschrieben und zwar ist der Server in Java geschrieben und der Client in PHP. Ich teste das momentan mit Xampp
Ich habe jetzt folgendes Problem. Wenn ich den Server an meinem Rechner über folgende Zeile publishe
Code:
Endpoint.publish("http://192.168.1.102:8080/haushalt", service);
und ich dann auch Apache mit Xampp an meinem Rechner starte und den Clienten dort ausführe funktioniert alles Problemlos und schnell.

Wenn ich jetzt jedoch den Apache bspw. an einem anderen Rechner starte und von dort den clienten ausführe der Webservice aber jedoch immer noch auf meinem Rechner (192.168.1.102) ausführe dann dauert der Aufruf einer Methode des Webservices schon lange. mindestens 2s.

Das komische ist ich habe direkt eine Systemausgabe in der Methode eingebaut die ich aufrufe. Bevor die Methode ausgeführt wird vergeht einiges an Zeit und auch dannach..
Warum ist das so und wie kann ich das unterbinden. Ich habe gelesen mann kann die Message vom Webservice komprimieren, aber wie geht das mit Java wo ich doch nur Annotations benutze.

anbei das was ich mit den Annotations eingestellt habe.
@WebService
@SOAPBinding(style=SOAPBinding.Style.RPC, parameterStyle=SOAPBinding.ParameterStyle.WRAPPED, use=SOAPBinding.Use.ENCODED)
@XmlSeeAlso({Group[].class,PublicUser[].class,User[].class,Invoice[].class,Article[].class,Object[].class,StatusCode.class})

Ich danke für die Hilfe und freundliche Grüße
Meckie
 
Hallo nochmal ich.

Ich konnte das Problem immer nocht nicht lösen.
Ich habe mir jetzt noch ein Buch daszu geliehen und die machen das nicht anders als ich.

Viellicht erkläre ich das Problem nochmal einfacher.
Wenn Server und Client am selbsen Rechner laufen geht alles super schnell.
Wenn nicht, dann benötigt der Aufruf einer Methode ca. 1s.
Das finde ich recht lang und ich kann mir nicht erklären das andere sowas akzeptieren ist doch super nervig.
Ich habe mich jetzt noch in den SOAPHandler eingeklingt und der wird halt recht spät aufgerufen. Alles andere geht fix dann.

Jemand eine Idee?
 
@Thomas
Erstmal danke für die schnelle Antwort.
Also schonmal soviel:
Ich habe auch das Tutorial welches du hier gepostet hast nachprogrammiert und auch dort habe ich das gleiche Problem. Man merkt das vorallem wunderschön wenn man mehrmals die gleiche Methode aufruft.
Beim rest muss ich nochmal gucken

Gruß
Meckie
 
Hallo,

diese Einstellung habe ich am Client vorgenommen.

entweder programmatisch:
Java:
System.setProperty("http.keepAlive", "false");

oder als JVM Property beim starten deiner Anwendung:
Code:
java -cp %CLASSPATH% -Dhttp.keepAlive=false de.your.main.Clazz

Mit -D kann m an System Properties (JVM Properties) über die Konsole setzen.

Gruß Tom
 
Ok ich habe nur das Problem, dass ich den Clienten im Endeffekt mit PHP realisieren möchte, bzw. mit dem Zend-Framework. Ich habe dein Tuturial zum testen nachprogrammiert. Und es hat sich dabei ja rausgestellt das es sowohl in java als auch in php langsam ist

Gruß
Meckie
 
Zurück