我开始编写一个 Web 服务来显示来自 mysql 数据库的数据
我不知道这个wsdl有什么问题。当我在 C# 中添加 Web 引用时,显示错误
我用这个wsdl
<?xml version="1.0"?>
<!-- partie 1 : Definitions -->
<definitions name="listeClient"
targetNamespace="urn:listeClient"
xmlns:typens="urn:listeClient"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<!-- partie 2 : Types-->
<types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:listeClient">
</xsd:schema>
</types>
<!-- partie 3 : Message -->
<message name="rechercheResponse">
<part name="return" type="xsd:string"/>
</message>
<!-- partie 4 : Port Type -->
<portType name="listeClientPort">
<!-- partie 5 : Operation -->
<operation name="recherche">
<output message="typens:rechercheResponse"/>
</operation>
</portType>
<!-- partie 6 : Binding -->
<binding name="listeClientBinding" type="typens:listeClientPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="recherche">
<soap:operation soapAction="listeClientPortAction"/>
<output name="rechercheResponse">
<soap:body use="encoded"
namespace="urn:listeClient"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<!-- partie 7 : Service -->
<service name="listeClientService">
<documentation>Recherche de produit dans la base </documentation>
<!-- partie 8 : Port -->
<port name="listeClientPort" binding="typens:listeClientBinding">
<soap:address location="http://localhost/check-net/test/Serveur/server.php"/> <!-- modifier ce chemin vers server.php -->
</port>
</service>
</definitions>
在客户端c#中它向我显示以下错误
Error 3 Error custom tool: Unable to import WebService / Schema. Unable to import binding 'listeClientBinding' from namespace 'urn: ClientList'. Operation 'search' on portType 'listeClientPort' from namespace 'urn:ClientList' has the following syntax error: The operation has no corresponding link. Check if the operation, input and output in the Binding section names correspond to the names of the PortType section.
php
<?php
// premiere etape : desactiver le cache lors de la phase de test
ini_set("soap.wsdl_cache_enabled", "0");
// on indique au serveur a quel fichier de description il est lie
$serveurSOAP = new SoapServer('clients.wsdl');
// ajouter la fonction RechercheProduit au serveur
$serveurSOAP->addFunction('recherche');
// lancer le serveur
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$serveurSOAP->handle();
}
else
{
echo 'desole, je ne comprends pas les requetes GET, veuillez seulement utiliser POST';
}
function connexion($server, $user, $pswr, $base)
{
mysql_connect($server, $user, $pswr);
mysql_select_db($base);
}
function recherche()
{
connexion("localhost","root","","test");
$Rq="select Nomc,Prenomc,Adresse,codePostale from client";
$Resultat=mysql_query($Rq);
$XML="<clients>";
while($clt=mysql_fetch_array($Resultat))
$XML.="<client>
<Nomc>".$clt["Nomc"]."</Nomc>
<Prenomc>".$clt["Prenomc"]."</Prenomc>
<Adresse>".$clt["Adresse"]."</Adresse>
<codePostale>".$clt["codePostale"]."</codePostale>
</client>";
$XML.="</clients>";
echo $XML;
return($Resultat);
}
?>