IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Soap lite: Object reference not set to an instance of an object


Sujet :

Web Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Soap lite: Object reference not set to an instance of an object
    Bonjour,

    J'essaie d'utiliser un webservice déjà existant. Après de nombreux échecs (je suis nouveau à la fois en Perl et en WS ) et de recherches sur le net, j'arrive enfin à un semblant de communication avec le server et j'ai l'erreur suivante :
    soap:Server, Server was unable to process request. ---> Object reference not set to an instance of an object.

    Mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    use SOAP::Lite  +trace =>  'debug';
     
    my $var = SOAP::Data->new(name => 'NTLogin', value => "123456", type =>'s:string');
     
    my $resultLogin = SOAP::Lite
      -> uri('http://xxxxxx.org')
      -> proxy('http://yyyyyy/zzzzzz/directory.asmx')
      -> on_action( sub { join '/', @_ } )
      -> GetUIDFromNTLogin($var);
     
    print "lets test it...\n\n";
     
    unless ($resultLogin->fault()) {
      print "works !\n\n";
      print $resultLogin->result();
    } else {
      print "error:\n";
      print join ', ', 
        $resultLogin->faultcode, 
        $resultLogin->faultstring;
    }
    La trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SOAP::Transport::HTTP::Client::send_receive: POST http://yyyyyy/zzzzzz/directory.asmx
    Accept: text/xml
    Accept: multipart/*
    Content-Length: 529
    Content-Type: text/xml; charset=utf-8
    SOAPAction: http://tempuri.org/GetUIDFromNTLogin
     
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w
    3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/e
    ncoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="
    http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap
    .org/soap/encoding/"><SOAP-ENV:Body><namesp1:GetUIDFromNTLogin xmlns:namesp1="ht
    tp://tempuri.org"><NTLogin xsi:type="s:string">123456</NTLogin></namesp1:GetUI
    DFromNTLogin></SOAP-ENV:Body></SOAP-ENV:Envelope>
    SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error
    Cache-Control: private
    Date: Wed, 23 May 2012 16:39:13 GMT
    Server: Microsoft-IIS/6.0
    Content-Length: 441
    Content-Type: text/xml; charset=utf-8
    Client-Date: Wed, 23 May 2012 16:39:13 GMT
    Client-Peer: 111.222.333.444:80
    Client-Response-Num: 1
    Set-Cookie: BIGipServerEquitiesDerivatives-http=1234567890.12345.0000; path=/
    X-AspNet-Version: 2.0.50727
    X-Powered-By: ASP.NET
     
    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.
    xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
    " xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode
    >soap:Server</faultcode><faultstring>Server was unable to process request. ---&g
    t; Object reference not set to an instance of an object.</faultstring><detail />
    </soap:Fault></soap:Body></soap:Envelope>
    lets test it...
     
    error:
    soap:Server, Server was unable to process request. ---> Object reference not set
     to an instance of an object.Press any key to continue . . .
    J'ai trouvé pas mal de topic sur ce sujet, mais très peu de réponses... Quelqu'un aurait-il une idée là-dessus ?

    Merci beaucoup d'avance

    Will1v,

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Hello,

    Aucune réponse, personne n'a d'idée ?... Vraiment ?
    Au moins un début de piste ?

    Merci beaucoup,

    Will1v

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je ne connais pas du tout les web services et encore moins le paquetage SOAP::Lite, mais je me demande si tu ne dois pas commencer par créer une instance de ton objet en invoquant une méthode de type SOAP::Lite->new.

    C'est ce que le message d'erreur suggère: "Object reference not set
    to an instance of an object". Tu as une référence vers un objet, mais elle ne pointe pas vers un objet.

    C'est juste une idée qui me vient comme ça, encore une fois je ne connais pas du tout ce module.

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour Lolo78,

    Merci beaucoup pour ta réponse !

    Je ne crois pas que ce soit ça, parce que je n'ai jamais vu d'utilisation de new pour instancier SoapLite dans tous les exemples que j'ai pu croiser (notamment les exemples officiels).

    Après quelques recherches, je trouve effectivement qu'on peut construire différemment, en utilisant un new, comme dans cet exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    use SOAP::Lite +trace => [ 'debug' ];
     
    my $req1 = SOAP::Lite->new(
        readable => 1,
        autotype => 0,
        proxy    => 'https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor',
    );
     
    $req1->requestMessage(
        \SOAP::Data->new(
            name => 'item',
            attr => { foo => '0' },
            value => \SOAP::Data->new(
                name => 'foo',
                value => 1,
            ),
         ),
    );
    J'essaie d'adapter mon code à ça pour voir si ça aide, pour l'instant c'est un échec.

    Si quelqu'un a une autre idée, je prends toutes les pistes !

    Merci encore pour votre aide,

    Will1v

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/04/2008, 19h36
  2. new : Object reference not set to an instance of an object
    Par zulad dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/06/2007, 21h35
  3. Object reference not set to an instance of an object
    Par DjRusty dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 08h26
  4. Réponses: 1
    Dernier message: 28/12/2006, 12h05
  5. Réponses: 1
    Dernier message: 20/04/2006, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo