0

PHP と Web サービスを使用して Web アプリを構築しようとしています。Web サービス経由で PHP の PDO を使用してデータベースに接続したいと考えています。サーバー ファイル、クライアント ファイル、および wsdl ファイルを作成しました。さまざまなテストで、wsdl ファイルに問題があることがわかりました。これは、サーバー ファイルとクライアント ファイルで他の wsdl ファイルを使用して他の機能を実行すると、それらが適切に機能するためです。私は localhost で作業しており、すべてのファイルは wamp/www/myApp/api/ ディレクトリにあります (Apache 2.2.8、PHP 5.2.6)。参考までにwsdlファイルを載せておきます。どこが間違っているかを示して、エラーを修正するように案内してください。ありがとう。

wsdl ファイル:

    <?xml version="1.0" encoding="utf-8"?>
    <definitions name="MyService" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://My.Local.IP/myApp/api/my.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">

<message name="LoginRequest">
    <part name="dns" type="xsd:string"/>
    <part name="user" type="xsd:string"/>
    <part name="password" type="xsd:string"/>
</message>
<message name="LoginResponse">
    <part name="result" type="xsd:string"/>
</message>

<portType name="Fetch_PortType">
    <operation name="Login">
        <input message="tns:LoginRequest"/>
        <output message="tns:LoginResponse"/>
    </operation>
</portType>

<binding name="MyService_Binding" type="tns:Fetch_PortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="Login">
        <soap:operation soapAction="http://My.Local.IP/myApp/api/Login"/>
        <input name="Login">
            <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>
        </input>
        <output name="Login">
            <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>
        </output>
    </operation>
</binding>

<service name="My_Service">
    <documentation>WSDL File MyService</documentation>
    <port name="Fetch_PortType" binding="tns:MyService_Binding">
        <soap:address location="http://My.Local.IP/myApp/api/server.php"/>
    </port>
</service>
    </definitions>
4

2 に答える 2

0

サーバークラスまたは Login メソッドを実装するクラス/関数の PHP エラーの可能性があります。ファイルに直接アクセスするとどうなりますか? エラーログを確認してください。

于 2012-09-07T10:48:07.570 に答える
-1

私は自分で WSDL を書いたことはありません。代わりに、ミラー .NET Web サービスを作成し、(MS Visual Studio によって) 自動生成された WSDL を使用することができます。

于 2015-03-17T10:05:00.990 に答える