Bluehost.com Web Hosting $6.95

why does soapserver always returns a null object?

This is a discussion on why does soapserver always returns a null object? within the PHP Language forums, part of the PHP Programming Forums category; hi, i am trying to implement a web service using php. it should return a complex type, but it is ...


Go Back   Usenet Forums > PHP Programming Forums > PHP Language

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 10-16-2006
mjed01@googlemail.com
 
Posts: n/a
Default why does soapserver always returns a null object?

hi,

i am trying to implement a web service using php. it should return a
complex type, but it is always null.

i have the following wsdl:
<?xml version="1.0" encoding="utf-8"?>

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://www.test.co.uk/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://www.test.co.uk/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

<wsdl:types>

<s:schema elementFormDefault="qualified"
targetNamespace="http://www.test.co.uk/soap/">

<s:element name="func">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="a"
type="tns:thing" />

</s:sequence>

</s:complexType>

</s:element>

<s:complexType name="thing">

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="a"
type="s:string" />

</s:sequence>

</s:complexType>

<s:element name="funcResponse">

<s:complexType>

<s:sequence>

<s:element minOccurs="0" maxOccurs="1" name="funcResult"
type="tns:thing" />

</s:sequence>

</s:complexType>

</s:element>

</s:schema>

</wsdl:types>

<wsdl:message name="funcSoapIn">

<wsdl:part name="parameters" element="tns:func" />

</wsdl:message>

<wsdl:message name="funcSoapOut">

<wsdl:part name="parameters" element="tns:funcResponse" />

</wsdl:message>

<wsdl:portType name="testSoap">

<wsdl:operation name="func">

<wsdl:input message="tns:funcSoapIn" />

<wsdl:output message="tns:funcSoapOut" />

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="testSoap" type="tns:testSoap">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />

<wsdl:operation name="func">

<soap:operation soapAction="http://www.test.co.uk/soap/func"
style="document" />

<wsdl:input>

<soap:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap:body use="literal" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:binding name="testSoap12" type="tns:testSoap">

<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />

<wsdl:operation name="func">

<soap12:operation soapAction="http://www.test.co.uk/soap/func"
style="document" />

<wsdl:input>

<soap12:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap12:body use="literal" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="test">

<wsdl:port name="testSoap" binding="tns:testSoap">

<soap:address location="http://localhost/test.php" />

</wsdl:port>

<wsdl:port name="testSoap12" binding="tns:testSoap12">

<soap12:address location="http://localhost/test.php" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>


i then have the following php script:
<?php

class thing
{
public $a;
}

class test
{
public function func($a)
{
$a->a = "returning";
return $a;
}
}

$wsdl = "test.wsdl";

ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer( $wsdl, array('soap_version' => SOAP_1_2));

$server->setClass("test");
$server->handle();

?>

however, whatever i pass to the web method i get:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.test.co.uk/soap/">
<SOAP-ENV:Body>
<ns1:funcResponse/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

ie. funcResponse is null.

i'm sure i'm missing something simple so any help would be much
appreciated.

many thanks,
mike.

Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT +1. The time now is 12:29 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0