Re: [SOAP] problems with SOAP-PHP5 and heritage

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

 



Em Quarta 08 Novembro 2006 00:48, Adam Ashley escreveu:
> On Tue, 7 Nov 2006 10:06:28 -0200, Ronaldo Reis Junior
>
> <chrysopa@xxxxxxxxx> 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
--
> 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@xxxxxxxxx
| ICQ#: 5692561 | LinuxUser#: 205366

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux