Java: Einfache SOAP-Client
Ich bin auf der Suche nach einem SOAP-client für Java.
Apache Axis sieht sehr aufgebläht zu mir. Ich verstehe nicht, warum die Dinge so kompliziert zu sein in Java. Zum Beispiel in PHP, alles, was ich zu tun ist:
<?php
$global_service_wsdl='https://api.betfair.com/global/v3/BFGlobalService.wsdl';
$betfair=new SoapClient($global_service_wsdl);
$params=array("request"=>
array("header"=>
array("clientStamp"=>0,"sessionToken"=>$session_token)),"locale"=>""
);
$response=$betfair->getAllEventTypes($params);
?>
Und meine $response-Objekt enthält alle Informationen, die ich brauche.
Kann jemand empfehlen, wie ich etwas umsetzen, wie dies in Java ohne zu viel Aufwand?
Vielen Dank im Voraus,
~Edit 1~
@jarnbjo:
Dass ist sehr nützlich für mich. Das bit ich bin mir hängengeblieben ist, was Importe benötige ich diesen code ausführen?
Lief ich mit diesem Befehl:
sh wsdl2java.sh -o output -ein -uri https://api.betfair.com/global/v3/BFGlobalService.wsdl
Gebaut und die Ausgabe. Glaubst du, das ist schneller als PHP? Auch ich habe eine "asynchrone" - option. Bedeutet das, dass ich machen kann, asynchrone Aufrufe? Das wäre sehr nützlich. Ich würde gerne alle diese innerhalb eines Java-basierten websocket-server.
- maxlols >> ich verstehe nicht, warum die Dinge so kompliziert zu sein in Java.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sei denn, Sie benötigen zusätzliche Funktionen, die nicht von der SOAP-client in der standard-Java-API, die Sie verwenden können, das wsimport-tool in den JDK-bin-Verzeichnis (das WSDL-URL) und lassen Sie es generieren von Java-Klassen für service-Fassade.
Mit den generierten Klassen, Sie benötigen einige Java-code, als in dein PHP-Beispiel, um die Anforderung durchzuführen, aber es ist immer noch vernünftig:
Diesem Beispiel mit einem Fehler scheitert, aber wahrscheinlich, weil die session-token ist ungültig.
Java ist statisch typisiert, was bedeutet, dass der compiler muss wissen, jede Methode, bevor Sie Sie aufrufen können und es direkt in Ihren Quellcode. Dies wiederum bedeutet, dass Sie müssen Java-Klasse stubs Beschreibung des web service, so dass Sie haben etwas zu nennen. Es ist in der Regel ein Dienstprogramm mit einem web-service-stack tut genau dies.
Vielleicht finden Sie diese Frage interessant Welche Methoden existieren zur automatischen Generierung von java-client-stubs aus WSDL-Dateien?
Werde ich echo CXF, aber mit einem Beispiel, wie es zu benutzen. Allerdings setzt dies Voraus, die Sie ausgeführt haben die CXF/JAXWS-tool zum generieren von Java-code auf Basis der wsdl.
Den code zu schreiben ist nicht sonderlich schwer. Der schwierigere Teil ist eigentlich, herauszufinden, wie, um die notwendigen Java-code aus der wsdl. Es ist nicht schwer, nur, dass Sie haben, um die richtige Befehlszeile Beschwörung.
Check "Senden, oder Posten Sie eine SOAP-Nachricht mit SAAJ (document/literal)"...
Es ermöglicht Ihnen das senden und empfangen von XML über SOAP und manipulieren den Inhalt der SOAP-Umschlag direkt und ohne Analyse und interpretation/bindings in java-Objekte wie wenn Sie wsimport...
http://users.skynet.be/pascalbotte/rcx-ws-doc/saajpost.htm
Hinsichtlich
Werfen Sie einen Blick auf CXF