1

PHPWebサービスと1つの関数を作成しています。PHPでWebサービスを設定したい。このWebサービスのWSDL記述を生成して、IeVisualStudioからアクセスできるようにする必要があります。入力としてドキュメント/検索文字列を受け取り、出力として同様のドキュメントを推奨します。操作が成功(1)か失敗(0)かを示す最初の要素resultCode(int)を含む配列を返します。ただし、2番目の要素は、何が問題だったかをユーザーに通知するエラーメッセージ(文字列)か、一致するさまざまな記事のサブ要素を持つ配列のような複雑な戻り型、つまりarray(array( "heading" => ")のいずれかです。記事の見出し"、" articleId "=> 12345、" text "=>"記事の本文")、array(...)、...)。そのリターン型のWSDLを生成/書き込む方法、またはNuSOAPでそれを行う方法を知る必要があります。どのようにそれをしますか?

これは、サービスのセットアップに現在使用しているコードの一部です。

$server->wsdl->addComplexType(
'returnStructBase',
'complexType',
'struct',
'all',
'',
array('resultCode' => array('name'=>'resultCode', 'type'=>'xsd:int'),
      'resultData' => array('name'=>'resultData', 'type'=>'xsd:anyType')
     )
); 
$server->wsdl->addComplexType(
'returnStructArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
    array('ref' => 'SOAP-ENC:arrayType',
          'wsdl:arrayType' => 'tns:returnStructBase[]'
        )               
    ),
'tns:returnStructArray'
);

$server->register("GetRecommendations", array('username'=>'xsd:string', 'password'=>'xsd:string','articleId'=>'xsd:string',
                'text'=>'xsd:string', 'returnText'=>'xsd:boolean'), array('return'=>'tns:returnStructArray'), $namespace, $namespace . '#getRecommendations', 'rpc', 'encoded', ' ... ');

たぶん、PHPの緩い型付けにより、戻り型に不適切なデザインを使用し、他の何かを使用する必要がありますか?

任意の推奨事項を歓迎します。

4

3 に答える 3

1

を使用できますxsd:anytype。実際、.NETやJavaなどのタイプベースの環境ではwsdlを処理できないため、お勧めしません。

クリーンなソリューションを取得するために、デザインphpがあなたを誘惑したことを再考します...;)

于 2009-09-21T15:11:12.963 に答える
0

あなたは戻ることができます

  • 最初の要素:エラーコード、0 =悪い、1=良い
  • 2番目の要素:エラーメッセージ、問題がなければ空
  • 3番目の要素:複合型。悪い場合は空にします。
于 2009-09-24T07:45:16.410 に答える
0

常に同じ構造を返す必要があります。障害が発生した場合は、SOAP障害を使用して、通常の使用法と同じように例外を使用する必要があります 。http ://www.ibm.com/developerworks/webservices/library/ws-tip-jaxrpc.html

于 2009-09-21T15:13:20.523 に答える