Re: PHP and SoapClient - problems communicting with ASP .net Web service

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Your classmap isn't setup properly, you don't map from the WSDL type to
an instance of the class, you map from the WSDL type to the class you
want to use.

In your example, your classmap should be array('Book' => 'Book'), and
then the return type when you call the method that returns a WSDL Book
will be your Book class.

Regards,
Al


On Tue, 2007-10-16 at 17:16 -0700, newfie wrote:
> Jeffery,
> 
> Thanks for you reply. Unfortunately, I tried the same code on a PHP 5.2.1
> server and it's still giving me the same error. I've run out of ideas and
> don't know what to do. Is there a working example that i can look at just to
> prove that it works? I've been stuck on the same task for days....
> 
> 
> 
> 
> Jeffery Fernandez-3 wrote:
> > 
> > On Wednesday 17 October 2007 09:46, newfie wrote:
> >> I have a web service which i want to consume via PHP.
> >>
> >> Whenever i attempt to communicate with it it comes up with:
> >>
> >> "Server was unable to process request. --> Object reference not set to an
> >> instance of an object."
> >>
> >> Googled it and got the following:
> >>
> >> php.net/soap_soapclient_soapcall
> >>
> >> Apparently this code should work to fix the above problem:
> > 
> > more likely got to do with the version of PHP5  you are running. The 
> > documentation for most of the newer functions are not upto-date. I fell
> > into 
> > a similar trap until I realised that I was using an old version of php5. I 
> > recommened using 5.2.1 for SOAP related functionality.
> > 
> > cheers,
> > Jeffery
> >>
> >>
> >> <?php
> >>
> >> class Test {
> >> public $account;
> >> public $password;
> >> }
> >>
> >> $parameters = new Test;
> >> $parameters -> account = $username;
> >> $parameters -> password = $password;
> >>
> >> try {
> >> $client = new SoapClient ("https://www.somewebsite.com/Serv­;
> >> ice.asmx?wsdl", array('classmap' => array('CheckUser' => 'Test')));
> >> $client -> CheckUser ($parameters);
> >> echo "Valid Credentials!";
> >> }
> >> catch (Exception $e) {
> >> echo "Error!<br />";
> >> echo $e -> getMessage ();
> >> }
> >>
> >> ?>
> >>
> >> I modified it and my version as follows:
> >>
> >> <? class Book {
> >> public $author = "1";
> >> public $title = "2";
> >> public $publisher= "3";
> >> public $loc= "4";
> >> }
> >>
> >> $bookC = new Book;
> >>
> >> $sc = new SoapClient("URLTOWEBSERVICE?wsdl",­ array('classmap' =>
> >> array('bookC ' => "Book")));
> >>
> >> try {
> >> print_r($sc->getBook($bookC));
> >> }
> >> catch (Exception $e)
> >> {
> >> echo $e->getMessage();
> >> }
> >>
> >> WSDL as follows:
> >>
> >>
> >> - <s:complexType name="Book">
> >> - <s:sequence>
> >> <s:element minOccurs="0" maxOccurs="1" name="author" type="s:string" />
> >> <s:element minOccurs="0" maxOccurs="1" name="title" type="s:string" />
> >> <s:element minOccurs="0" maxOccurs="1" name="publisher" type="s:string"
> >> />
> >> <s:element minOccurs="0" maxOccurs="1" name="loc" type="s:string" />
> >> </s:sequence>
> >> </s:complexType>
> >>
> >>
> >>
> >> Been stuck on it for a while, any ideas?
> >>
> >> I've also tried using nuSoap with the same result. :|
> >> --
> >> View this message in context:
> >> http://www.nabble.com/PHP-and-SoapClient---problems-communicting-with-ASP-.
> >>net-Web-service-tf4637443.html#a13244580 Sent from the Php - Soap mailing
> >> list archive at Nabble.com.
> > 
> > -- 
> > Internet Vision Technologies
> > Level 1, 520 Dorset Road
> > Croydon
> > Victoria - 3136
> > Australia
> > 
> >  
> > 
> 
> -- 
> View this message in context: http://www.nabble.com/PHP-and-SoapClient---problems-communicting-with-ASP-.net-Web-service-tf4637443.html#a13244887
> Sent from the Php - Soap mailing list archive at Nabble.com.
> 

-- 
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Kernel Newbies]     [PHP Database]     [Yosemite]

  Powered by Linux