1

だから私はwsdlとsoapを使ってphp経由で単純なJavaメソッドにアクセスしようとしています。しかし、php ファイルを実行しようとすると、次のエラーが表示されます。

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost:8080/WEB/services/SampleClass': C:\ のドキュメントの末尾に余分なコンテンツがありますxampp\htdocs\abc.php:2 スタック トレース: #0 C:\xampp\htdocs\abc.php(2): SoapClient->SoapClient('http://localhos...') #1 {main} がスローされるC:\xampp\htdocs\abc.php の 2 行目

これが私のコードです:

<?php  
  $client = new SoapClient("http://localhost:8080/WEB/services/SampleClass");
 $name=15;
 $c=20;
  $response = $client->demo($name, $c);
  echo $response;
?>

何が問題なのかわかりません。SoapClientコンストラクタへの引数ですか?他の構文に従って指定する必要がありますか?

また、私は Soap と WSDL の完全な初心者なので、段階的な解決策を歓迎します!

4

3 に答える 3

4

サービスのWSDLをSOAPコンストラクターに渡す必要があります。ローカルホスト上のファイルにすることもできます。通常、単純に?wsdlをcheserviceurlに追加します。

<?php  
  $client = new SoapClient("http://localhost:8080/WEB/services/SampleClass?wsdl");
 $name=15;
 $c=20;
  $response = $client->demo($name, $c);
  echo $response;
?>
于 2012-07-01T18:11:57.207 に答える
-1

問題は、wsdlのファイル拡張子を宣言していないことです。

これを変える、

$client = new SoapClient("http://localhost:8080/WEB/services/SampleClass");

これに、

$client = new SoapClient("http://localhost:8080/WEB/services/SampleClass.wsdl");
于 2012-07-01T18:14:31.277 に答える