Problem beim Veröffentlichen von Webservices in Java

danielandross

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein Problem mit Webservices in java.
Ich habe dieses Tutorial durchgearbeitet, was übrigens sehr gut geschrieben ist:
http://www.theserverside.de/webservice-in-java/

Das ganze funktioniert auch soweit es im Tutorial beschrieben ist. Nur möchte ich jetzt den webservice auch auf einem anderen Rechner aufrufen können, was ja auch der Sinn eines Webservices.

Mein Problem ist Folgendes:
Wenn ich die Adresse http://localhost:8080/calculator?wsdl ,die mir auf dem Webservicehoster die wsdl datei anzeigt, das localhost durch den rechnername oder dessen ip ersetze und dies dann in einem Client Browser angebe erhalte ich einen 404. Also zB http://WebserviceHostName:8080/calculator?wsdl
Auf dem Host befindet sich noch keine Firewall, Virenscanner und auch die Windowsfirewall (XP) ist deaktiviert.

Wo liegt mein Fehler?

Schonmal Danke.

Gruß

edit: Ich kann den Host vom Client aus anpingen.
 
ok ich formuliere die Frage anders:
Wenn ich meinen Webservice folgendermaßen veröffentliche:
Code:
Calculator server = new Calculator();
Endpoint endpoint =
      Endpoint.publish("http://localhost:8080/calculator", server);

Wie kann ich diese so entstehende wsdl dann von einem remote Client-Rechner abrufen?
Soweit ich es verstehe müsste die browser-adresse so lauten:
http://WebserviceHostName:8080/calculator?wsdl
 
Hallo,

ich habe das selbe Problem. In der Server-Klasse habe ich anstatt localhost bereits den Servernamen angegeben, also z.B. so:
Code:
		Endpoint endpoint = Endpoint.publish("http://hostname:8080/hello", server);

Damit kann ich vom selben Rechner auf http://hostname:8080/hello?wsdl zugreifen - nicht jedoch von fremden Rechnern.

Das kann man auch einfach mit einem telnet hostname 8080 testen:
- vom lokalen Rechner OK
- von fremden Rechnern

Sieht also so aus, dass der WebService in Java 6 nur Anfragen von localhost annimmt. Kann das jemand bestaetigen?

Frank
 
Hallo,

dann bin ich da wohl nicht alleine :)
Aber dass Webservices nur von localhost ansprechbar sind bezweifle ich irgendwie. Da wäre ja der Sinn eines Webservice total verfehlt.

Wäre super wenn uns da jemand Auskunft geben könnte.
 
Da hast du schon Recht, aber es kann ja sein, dass die in Java 6 bereits enthaltenen Funktionen fuer WebServices nur localhost zulassen. Als Sicherheitsfunktion oder sowas. Ist aber nur ins Blaue geschossen ...
 
Hi,

hab das problem selbst gelöst.
Scheinbar liegt es am localhost.
Wenn der Service von extern auffindbar sein soll muss es so lauten:

Code:
Endpoint endpoint = Endpoint.publish("http://NAMEDESSERVERRECHNERS:8080/hello", server);
 
Und das hat bei dir funktioniert? Hab ich naemlich gleich als erstes ausprobiert: Vom lokalen Host funktioniert's (ueber hostname anstatt localhost), von fremden Rechnern aus aber nicht.
 

Neue Beiträge

Zurück