ホームページ  >  記事  >  バックエンド開発  >  PHP が Java に配列を渡しますが、Java が受け取る配列の長さは 0 です

PHP が Java に配列を渡しますが、Java が受け取る配列の長さは 0 です

WBOY
WBOYオリジナル
2016-06-23 13:47:581222ブラウズ

$NusoapWSDL="http://192.168.1.111:9080/leanprocess/ws/bbsdatatb?wsdl";
// クライアント オブジェクトを生成します
$client = new soapclient($NusoapWSDL, true)
// パラメータを設定します ( 注: PHP は「配列セット」モードでのみパラメーターを渡すことができます。サーバーが Java の場合、それを受け取るには Map を使用します)
$param = array( 'dept' => '165','reply'=>'330' , 'commentary'=> '46','date'=> '2014-8');
echo "リモートを開始します...
"; // リモートメソッドを呼び出します
$result = $client - >call('TbBbsData', array($param));
echo "debug: ".array($param)."
";
echo "リモートを終了...
";
// 実行結果を表示
if (!$err=$client->getError()){
echo 'result: '.$result; Java に渡す配列ですが、その長さは受信した配列は 0 です。何が起こっているのでしょうか?




ディスカッションへの返信 (解決策)

WSDL での定義方法に依存します
-

-

< ;/wsdl:message> - - - ;wsdl:output message="tns:TbBbsDataResponse" name="TbBbsDataResponse" />

- -

-


-




-
-
< ;/wsdl:port>

これは wsdl です
WSDL で定義されます
boolean TbBbsData(string $arg0)
パラメータは文字列ですもちろん配列として解釈されません

では、このブール値 TbBbsData(string $arg0) を配列に変更するにはどうすればよいでしょうか。

サービスは相手側が提供するものであり、当然相手側が変更する必要があります


-
- -
gt;

dl:part name=" return" type="xsd:boolean" />

-
-


-
-
-

< /wsdl:input> -

-



これで wsdl はこれに変更されましたが、相手はそれを受け取りました 配列は 0 のままです

誰も答えがありませんか?急いで急いで!

SoapClient を使用して文字列を綴ることで解決します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。