私はロープの終わりにいるので、コミュニティに助けを求める時が来ました.私はこの問題について見つけることができるリソースをウェブで略奪してきましたが、誰も助けてくれません.
現在、PHP を介して Java Webservice サーバーと通信しようとしています。WSDL をプルダウンし、その機能と型を__getFunctions();
および__getTypes();
この形式でクライアントを作成しています
new SoapClient("https://username:password@ip:port/path/to/wsdl?wsdl");
最初はこれで問題はありませんが、このサービスで関数を呼び出そうとすると、2 つの応答のうちの 1 つが返されます。
そのうちの 1 つがタイムアウト エラーであることはわかっていますが、2 つ目はまだわかりません。
エラー :SoapFault exception: [SOAP-ENV:Client] [MT-IP] SOAP message is not well formed in...
コードは次のとおりです。
// All of this works
$options["login"] = "login";
$options["password"] = "password";
$wsdl = "https://" . $options["login"] . ":" . $options["password"] . "@ip:port/path/to/wsdl?wsdl";
$client = new SoapClient($wsdl, $options);
try {
$functions = $client->__getFunctions();
$types = $client->__getTypes();
$params = new stdClass();
$params->pong = (string)"Hello World!";
// This fails
$result = $client->ping($params);
var_dump($result);
} catch (SoapFault $exception) {
echo $exception;
}
追加するために、次のような利用可能なすべての方法でメソッドを呼び出すことも試みました
$client->__soapCall("ping", array($params));
$client->__soapCall("ping", array(array("pong" => "Hello World!)));
$client->__soapCall("ping", array("pong" => "Hello World"));
$client->__soapCall("ping", array("parameters" => array("pong" => "Hello World"));
// and some more..
WSDLに対してテストしている WSDL も表示されます。
Web サービスSOAP TESTを呼び出そうとするページも表示できます。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="com.computas.mt.extern.Ping">
<SOAP-ENV:Body>
<ns1:ping>
<pong>Hello World!</pong>
</ns1:ping>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>