为什么soap Web服务在服务器上显示内部服务器错误?

时间:2015-09-01 06:39:41

标签: php web-services soap wsdl

我已经用php语言编写了一个soap web服务,它正确地在localhost上运行,但是当我在服务器上传它时,我可以看到它的wsdl文件并在soapUI中添加它的URL,但是当我调用它的函数时它显示内部服务器错误。

服务器的操作系统是centos6,php版本是php54,php soap已经存在。

出了什么问题?

<xs:element name="getServices">
<xs:complexType>
<xs:sequence>
<xs:element name="username" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
<xs:element name="mobileNum" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>




$client = new SoapClient("http://IpAddress/ws/ws?wsdl");
         try {
                 $response = $client->getServices(
                            array(
                                'username'         => 'username',
                                'password'         => 'pass',
                                'mobileNum'        => '1111111',
                            ));

                return $response;
            }
            catch(Exception $e)
            {
                return $e->getMessage();
        }

2 个答案:

答案 0 :(得分:0)

尝试查看服务器的错误日志文件,它会告诉您错误发生原因的详细说明。

当服务器无法执行脚本时,通常会发生内部服务器错误,因为脚本不是因为错误而是因为其自身的限制,例如max_execution time,max_upload_size,post_size等。

答案 1 :(得分:0)

你的wsdl缺少一些要点:例如命名空间。

    <?xml version="1.0" encoding="UTF-8"?>
    <definitions  name ="name" 
      targetNamespace="?"
      xmlns:tns="?"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns="http://schemas.xmlsoap.org/wsdl/"> 
      <xs:element name="getServices">
<xs:complexType>
<xs:sequence>
<xs:element name="username" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
<xs:element name="mobileNum" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
        </port>
      </service>
    </definitions>