Autor Zpráva
m.k_k
Profil *
Dobrý den,
chtěl bych se zeptat jestli by mě někdo nemohl nasměrovat, kde by mohla být chyba. Mám webovou službu napsanou v C#:

<%@ WebService Language="C#" Class="TestServicePHP.Aritmetika"%>
using System.Web.Services;
namespace TestServicePHP
{
[WebService(Namespace = "http://www.kalkulace.com/")]
public class Aritmetika
{
[WebMethod]
public int Soucet(int a, int b)
{
return a + b;
}
[WebMethod]
public int Rozdil(int a, int b)
{
return a - b;
}
}
}


a snažím se jí zavolat z PHP:

<?
$SOAPclient = new SoapClient("http://localhost/TestService.asmx?wsdl");
print_r($SOAPclient->__getFunctions());
?>


Už samotná inicializace mi neprojde (a tudíž to ani nevypíše pole s funkcemi). Hází to následující hlášení:

Warning: SoapClient:confused smileyoapClient(http://www.kalkulace.com/TestService.asmx?wsdl) [function.SoapClient-SoapClient]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\webs\colis\php\--mk--\Service\TestPHP.php on line 2

Warning: SoapClient:confused smileyoapClient() [function.SoapClient-SoapClient]: I/O warning : failed to load external entity "http://www.kalkulace.com/TestService.asmx?wsdl" in C:\webs\colis\php\--mk--\Service\TestPHP.php on line 2

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.kalkulace.com/TestService.asmx?wsdl' : failed to load external entity "http://www.kalkulace.com/TestService.asmx?wsdl" in C:\webs\colis\php\--mk--\Service\TestPHP.php:2 Stack trace: #0 C:\webs\colis\php\--mk--\Service\TestPHP.php(2): SoapClient->SoapClient('http://www.kalk...') #1 {main} thrown in C:\webs\colis\php\--mk--\Service\TestPHP.php on line 2


Už se s tím trápím 2 dny a motám se pořád dokola. Když doplním odkaz na nějakou existující službu např. "http://soap.search.msn.com/webservices.asmx?wsdl" tak vše proběhne v pořádku.

Když volání změním na non-wsdl:

$SOAPclient = new SoapClient(null, array("location" => "http://localhost/TestService.asmx", "uri" => "http://localhost"));
$SOAPclient->__soapCall('Soucet', array(3, 2));
echo $SOAPclient->Soucet(3, 2);


tak inicializace proběhne OK a chybu mi to vyhodí na řádku 2 (__soapCall...)

Fatal error: Uncaught SoapFault exception: [HTTP] Not Found in C:\webs\colis\php\--mk--\Service\TestPHP.php:2 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://www.kalk...', 'http://www.kalk...', 1, 0) #1 C:\webs\colis\php\--mk--\Service\TestPHP.php(2): SoapClient->__soapCall('Soucet', Array) #2 {main} thrown in C:\webs\colis\php\--mk--\Service\TestPHP.php on line 2


Prosím o jakoukoliv radu nebo nasměrování. Ještě přikládám odkaz na http://source.php5.cz/TestService.wsdl
Díky
MartinK
AM_
Profil
Tvrdí to, že adresu http://www.kalkulace.com/TestService.asmx?wsdl to nemůže najít (taky opravdu neexistuje). Ve WebServisech se moc nevyznám, ale nemusíš namespace taky změnit na localhost než to pustíš do světa?
m.k_k
Profil *
Já mám vše a testuji na lokálu. Adresu www.kalkulace.com mám v hosts přesměrovanou k sobě. V tom problém asi nebude.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: