Probleme beim Aufruf eines Webservices

  • Hallo erstmal,


    also ich weiß nicht ob das hier richtig ist, da ich aber nicht weiß, wo das Pronlem liegt, würde ich hier mal anfangen.


    Ich habe einen Webservice (Java REST) auf einem Debain-Server laufen, welcher eine JSON-Antwort sendet. Diese Antwort nutze ich dann in einem Modul für meine Webseite, welche natürlich auf Joomla (3.4.6) aufsetzt. Webseite und Webservice laufen auf getrennten Maschinen, aber ist alles kein Problem, funktioniert fehlerfrei.


    Nun habe ich den Webservice auf einen anderen Server (ebenfalls Debian) umgezogen. Den Service kann ich über URL im Browser problemlos ansprechen und bekomme die erwartete Antwort. Leider kommt auf der Webseite immer eine Fehlermeldung beim Aufbau mit curl. Ich habe nichts außer der Adresse des Servers geändert.


    Beide Server laufen unter Debian 7 64 Bit minimal


    Fehlermeldung: cURL Error (7): Failed to connect to port 8080: Connection refused


    Code aus meinem Modul:

    Code
    $curl = curl_init();//curl_setopt($curl, CURLOPT_URL, "[ALTER_SERVER]:8080/hgidataservice/hgidataservice/gameservice/gamepreview?nextDays=14");curl_setopt($curl, CURLOPT_URL, "[NEUER_SERVER]:8080/hgidataservice/hgidataservice/gameservice/gamepreview?nextDays=14");curl_setopt($curl, CURLOPT_HTTPGET, true);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($curl, CURLOPT_ENCODING, "UTF-8");$curl_response = curl_exec($curl);if ($curl_errno = curl_errno($curl)) {$curl_error = curl_error($curl);echo "cURL Error ($curl_errno): $curl_error<br><br>";$info = curl_getinfo($curl);curl_close($curl);die('error occurred during curl exec. Additional info: ' . var_export($info));}


    Weiß wer, wieso das mit dem neuen Server nicht läuft? Mir ist nicht mehr in Erinnerung, dass ich was auf dem alten Server eingestellt habe, dass es geklappt hat. Leider kam ich bisher nicht weiter


    Vielen Dank schon mal


    ----------------------------------------
    curl_getinfo-Ausgabe:

    Code
    array ( 'url' => '[SERVER]:8080/hgidataservice/hgidataservice/gameservice/gamepreview?nextDays=14', 'content_type' => NULL, 'http_code' => 0, 'header_size' => 0, 'request_size' => 0, 'filetime' => -1, 'ssl_verify_result' => 0, 'redirect_count' => 0, 'total_time' => 7.7000000000000001E-5, 'namelookup_time' => 2.4000000000000001E-5, 'connect_time' => 0, 'pretransfer_time' => 0, 'size_upload' => 0, 'size_download' => 0, 'speed_download' => 0, 'speed_upload' => 0, 'download_content_length' => -1, 'upload_content_length' => -1, 'starttransfer_time' => 0, 'redirect_time' => 0, 'certinfo' => array ( ), 'primary_ip' => '', 'primary_port' => 0, 'local_ip' => '', 'local_port' => 0, 'redirect_url' => '', )
  • Ah sorry, ich hab den Tomcat auf 8090 laufen und habe nur copy&paste gemacht.


    Herausgefunden hast Du nun, dass der Tomcat antwortet, hätte ja sein können, dass er hängt.
    Das heisst: "Failed to connect to port 8080: Connection refused" stimmt nicht.


    Connection refused ist dabei seltsam, ein Timeout oder "could not connect" wäre nachvollziehbar, aber "Verbindung abgewiesen"...
    Da ist die Frage, ob das curl_init irgendwas anders macht.


    Was sagt denn:


    Code
    dpkg -l | grep php5-curl


    Code
    iptables -L


    Code
    uname -a


    Wenns da keine Unterschiee gibt, dann sollte man mal mehr debug-Info in die php_function curl_init bringen

  • Ich habe die Unterschiede mal versucht in einer Tabelle nebeneinander zu stellen:


    alter Server neuer Server
    dpkg -l | grep php5-curl 5.4.45-0+deb7u1 5.5.30-1~dotdeb+7.1
    uname -a Linux 57f2f3b847 2.6.32-042stab111.12 #1 SMP Thu Sep 17 11:38:20 MSK 2015 x86_64 GNU/Linux Linux a03022bd50 2.6.32-042stab111.12 #1 SMP Thu Sep 17 11:38:20 MSK 2015 x86_64 GNU/Linux


    iptables -L ist etwas umfangreicher:
    Alter Server

    Code
    Chain INPUT (policy ACCEPT)target     prot opt source               destinationChain FORWARD (policy ACCEPT)target     prot opt source               destinationChain OUTPUT (policy ACCEPT)target     prot opt source               destination


    Neuer Server:

  • Hier der Output von iptables ohne das aktivierte fail2ban:

  • Also das fail2ban hatte ich installiert, weil ich mal gelesen hatte, dass man das für den Server zu sicher installieren sollte. Hatte also nicht in böser Absicht gehandelt und dann wohl eher aus unwissenheit gehandelt.


    Auch wenn es nicht direkt zum Thread direkt gehört, würdest du vorschlagen, dass zu deinstallieren nochmal?

  • Ich würde erstmal nix mit DotDeb machen. Das ist der größe Mist den es gibt.


    Wenn Du die Original-Pakete installierst, dann mach ein Purge der alten Pakete. Wenn Du neueres PHP brauchst, dann nimm doch Debian 8

    Code
    dpkg -purge <paketname>
  • Also ich habe jetzt mal auf Debian 8 geupdatet und das fail2ban deinstalliert und das dotdeb aus meiner sources.list entfernt.


    Leider hatte mich das jetzt auch nicht weitergebracht. Die Konfiguration des Tomcat scheint, was ich verglichen habe, identisch zu sein.


    Was mich wundert ist, dass wenn ich die URL meines Services aufrufe, die Daten direkt geliefert werden. Es muss also doch irgendwo in der Kombination joomla und webservice liegen, oder sehe ich das falsch?