1

所以我试图通过php使用wsdl和soap访问一个简单的java方法。但是当我尝试运行 php 文件时,它会显示以下错误:

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR:解析 WSDL:无法从“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} 抛出在第 2 行的 C:\xampp\htdocs\abc.php

这是我的代码:

<?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 构造函数,也可以是 localhost 上的文件。通常简单地将 ?wsdl 添加到 che 服务 url。

<?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 回答
-1

我曾经也遇到过这个问题。来源是缺少的报价。

xmlns:myorder="应用/订单/

于 2017-06-02T13:38:35.013 回答