Hallo zusammen!
Ich habe folgendes php codestück zum Testen eines SOAP php servers:
<?
$arr_soapClient = array('exceptions' => 0,
'login' => $USERNAME,
'password' => $PASSWORD,
'encoding' => "ISO-8859-1",
'use' => SOAP_ENCODED);
try {
$client = new SoapClient($PATH_TO_WSDL_DATEI, $arr_soapClient);
} catch (SoapFault $fault) {
// error Handling
}
if (is_object($client)) {
$client->__setCookie ("ID",$ID);
$result = $client->test();
...
Kann mir jemand helfen, für dieses Codestück einen äuquivalenten Java-SOAP-Client zu bauen? Ich verwende zurzeit Apache Axis:
Call call =
null;
try {
// URL des Web Service
String endpoint =
"path_to_php_server";
//Service- und Aufruf-Objekt erzeugen
Service service =
new Service();
call = (Call) service.createCall();
// Adresse und Methode des Aufrufs
call.setTargetEndpointAddress (
new java.net.URL (endpoint));
call.setUsername("username");
call.setPassword("passwort");
call.setProperty("exceptions", "0");
call.setProperty("login", "username");
call.setProperty("password", "password");
call.setProperty("encoding", "ISO-8859-1");
call.setProperty("use", "SOAP_ENCODED");
Hashtable<String, Object> valueMap = new Hashtable<String, Object>();
valueMap.put("exceptions", "0");
valueMap.put("login", "username");
valueMap.put("password", "password");
valueMap.put("encoding", "ISO-8859-1");
valueMap.put("use", "SOAP_ENCODED");
call.setProperty(HTTPConstants.HEADER_COOKIE, "ID=1");
QName operation =
new QName("test");
//call.setOperationName(operation);
// Aufruf absenden und Rückgabewert speichern
Object[] params =
new Object[] { valueMap };
String ergebnis = (String)call.invoke(operation, params);
Ich bin mir nicht sicher, wie ich einen äuquivalentes SoapClient-object in Java erzeuge, und wie ich Cookies setzen kann.
Ich hab es auch mit wsdltojava probiert, um die Java Klassen erstellen zu lassen, hat aber mit der gegebenen WSDL nicht funktioniert.
Kann mir jemand helfen, den php-code in java umzumünzen?