Fatal error: Uncaught exception de type soapfault: [HTTP] Erreur de Récupérer les en-têtes http

Je suis en train de la sortie de "Hello World" à l'aide de XML, mais je suis de l'exception suivante dans ma page php:

Fatal error: Uncaught exception de type soapfault: [HTTP] Erreur de Récupérer les en-têtes http dans C:\wamp\www\Web_Service\SampleXML\index.php:4 la trace de Pile:

#0 [interne]: SoapClient->_doRequest('<?xml version="...', 'http://localhos...', 'urn:localhost-s...', 1, 0)

#1 [interne]: SoapClient->
_call('getHelloWorld', Array)

#2 C:\wamp\www\Web_Service\SampleXML\index.php(4): SoapClient->getHelloWorld()

#3 {principal} jeté dans C:\wamp\www\Web_Service\SampleXML\index.php sur la ligne 4

index.php

<?php
    $client = new SoapClient('service.wsdl');
    $response = $client->getHelloWorld(); 
    echo $response;
?>

service.wsld

<?xml version = '1.0' encoding = 'UTF-8' ?>

<definitions name = "Web Service"
    targetNamespace = 'http://example.org/service'
    xmlns:tns = 'http://example.org/service'
    xmlns:soap = 'http://schemas.xmlsoap.org/wsdl/soap/'
    xmlns:xsd = 'http://www.w3.org/2001/XMLSchema'
    xmlns:soapenc = 'http://schemas.xmlsoap.org/soap/encoding/'
    xmlns:wsdl = 'http://schemas.xmlsoap.org/wsdl/'
    xmlns = 'http://schemas.xmlsoap.org/wsdl/' >

    <!-- Message -->
    <message name='getHelloWorld'>
        <part name='response' type='xsd:string' />
    </message>

    <!-- Operations offered -->
    <portType name = 'PortType'>
        <operation name = 'getHelloWorld'>
                <!-- Target Name Space -->
                <output message = 'tns:getHelloWorld' />
        </operation>
    </portType>

    <!-- Binding Element -->
    <binding name = 'Binding' type = 'tns:PortType'>
        <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http' />
        <operation name='getHelloWorld'>
            <soap:operation soapAction = 'urn:localhost-service#getHelloWorld' />

        <!-- Output -->
        <output>
            <soap:body use='encoded' namespace='urn:locahost-service' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />
        </output>
        </operation>
    </binding>

    <!-- Define the service -->
    <service name='Service'>
        <port name='Port' binding='Binding' >
            <!-- Location -->
            <soap:address location='http://localhost/Web_Service/SampleXML/soap-server.php' />
        </port>
    </service>

</definitions>

soap-server.php

<?php

    function getHelloWorld() {
        return "Hello World";
    }

    ini_set("soap.wsdl_cache_enabled", "0");

    $server = new SoapServer('service.wsdl');
    $server->addFunction("getHelloWorld");    
    $server->handle();

?>

Ai-je raté quelque chose dans le code?

  • si vous appelez soap-server.php directement il y a des erreurs?
  • pas d'erreurs. juste une page blanche.
  • et lorsque vous affichez la source voyez-vous de la sortie?
  • pas de sortie dans le code source.
  • alors, peut-être votre soapserver n'est pas initialisé, ajouter un peu de la manipulation d'exception ou une façon simple de vérifier si elle est en cours de création?
  • faire de l'exploitation forestière dans votre serveur soap, par exemple, de vérifier toutes les valeurs de retour de toutes les fonctions qui ont un, connectez-vous à eux. Aussi journal s'inscrit savon fonctions sont appelées. Probablement la fonction n'est même pas appelé encore? Que serait un problème beaucoup plus important alors juste de voir une exception sur les en-têtes. Ainsi, les règles de résolution des problèmes de base s'appliquent dans PHP. Activer le rapport d'erreur d'au plus haut niveau, journal des erreurs en PHP. Suivez le journal des erreurs.

InformationsquelleAutor user1947562 | 2013-01-07