Re: [SOAP] problems with SOAP-PHP5 and heritage
| From: | Ronaldo Reis Junior | Date: | Thu, 09 Nov 2006 21:12:14 +0000 |
| Subject: | Re: [SOAP] problems with SOAP-PHP5 and heritage | ||
| References: | 1 2 | Groups: | php.general php.soap |
| Request: | Send a blank email to php-general+get-244444@lists.php.net to get a copy of this message | ||
Em Quarta 08 Novembro 2006 00:48, Adam Ashley escreveu:
> On Tue, 7 Nov 2006 10:06:28 -0200, Ronaldo Reis Junior
>
> <chrysopa@gmail.com> wrote:
> > Hi,
> >
> > I'm making a webservice using SOAP-PHP5. It working fine. But when I use
> > a method in a class that use a heritage, it fails. The class wrok fine
> > out of the webservice, but dont work on webservice.
>
> From the look of the files you attached they appear to be part of the
> client yes?
>
> If so you're looking in the wrong spot according to that error message
> the server did not generate a response. if you are using PHP5 SOAP it
> often means a parse or fatal error server side.
>
> Also what php version you using?
>
> Adam Ashley
Hi,
I try to make a more detailed example of the problem.
In attached file has a complete simple example.
./ServerTeste
./ServerTeste/classes
./ServerTeste/classes/Personnel.php
./ServerTeste/classes/User.php
./ServerTeste/wsdl
./ServerTeste/wsdl/WSDL_Gen.php
./ServerTeste/wsdl/generate.php
./ServerTeste/wsdl/User.wsdl
./ServerTeste/personnel.php
./ServerTeste/user.php
./teste.php
./User.wsdl
To make it work just copy to /var/www or other path. Change the permission of
files to apache users write files. Change the line 10 from
file ./ServerTeste/wsdl/generate.php to point to your webserver and path.
Execute this file and copy the new ./ServerTeste/wsdl/User.wsdl
to ./User.wsdl. Now point yout browser to
http://youraddress/yourpath/teste.php.
You see the OK, the soap work.
The problem is with this file: ./ServerTeste/classes/User.php
This is the code that work (without inheritance):
<?php
//require("../classes/Personnel.php");
// class User extends Personnel{
class User {
private $login;
public function User() {
// parent::Personnel();
}
/** Validate login
* @param string $login
* @param string $password
* @return int
*/
function checkLogin($login, $password){
return 1;
}
}
?>
But, when I active the inheritance:
<?php
require("../classes/Personnel.php");
class User extends Personnel{
//class User {
private $login;
public function User() {
parent::Personnel();
}
/** Validate login
* @param string $login
* @param string $password
* @return int
*/
function checkLogin($login, $password){
return 1;
}
}
?>
I received this error:
SoapFault exception: [Client] looks like we got no XML document
in /var/www/bioma/WSTest/teste.php:5 Stack trace: #0 [internal function]:
SoapClient->__call('checklogin', Array)
#1 /var/www/bioma/WSTest/teste.php(5): SoapClient->checklogin('c', 'c') #2
{main}
I dont find what is the problem? It is with inheritance?
Thanks for all explanations.
Inte
Ronaldo
ps. my attach file is blocked by server, I can send it in private
pss. my e-mail is going do the list? Please, reply if yes.
--
> Prof. Ronaldo Reis Júnior
| .''`. UNIMONTES/Depto. Biologia Geral/Lab. Ecologia Evolutiva
| : :' : Campus Universitário Prof. Darcy Ribeiro, Vila Mauricéia
|
. '` CP: 126, CEP: 39401-089, Montes Claros - MG - Brasil
| `- Fone: (38) 3229-8190 | chrysopa@gmail.com
| ICQ#: 5692561 | LinuxUser#: 205366