Re: Newbie question

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

 



The structure of your WSDL looks alright, although the namespaces are not
setup correctly.
That may be because you cut them out for brevity in your post...

I think your problem is with Axis, not PHP.

What's happening is that Axis doesn't know how to turn the "Number" complex
type into a Java object (it's called "deserialization", and it's the bane of
the Web Service author).

You need to help Axis out a little by including a beanMapping element in
your wsdd file.  Something along these lines may work:
<service>
...
<beanMapping qname="ns:Number"
languageSpecificType="java:samples.stock.StockQuoteService.Number"/>
...
</service>

Although you may need to use a typeMapping element, depending on your Java
object.

Check out http://www.osmoticweb.com/axis-wsdd/ for more wsdd goodness.

hth,

-Peter

"Patrick Hanna" <phanna@email.unc.edu> wrote in message
C0052195.22EF%phanna@email.unc.edu">news:C0052195.22EF%phanna@email.unc.edu...
> I cannot for the life of me get this to work. I have a service with this
> wsdl:
>
> <wsdl:definitions
> targetNamespace="http://192.168.0.2:8080/axis/services/quotes";>
>     <!--
>     WSDL created by Apache Axis version: 1.3
>     Built on Oct 05, 2005 (05:23:37 EDT)
>     -->
>     <wsdl:types>
>         <schema targetNamespace="http://stock.samples/";>
>             <import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>             <complexType name="Number">
>                 <sequence>
>                     <element name="data" type="xsd:float"/>
>                 </sequence>
>             </complexType>
>         </schema>
>     </wsdl:types>
>     <wsdl:message name="testResponse">
>         <wsdl:part name="testReturn" type="tns1:Number"/>
>     </wsdl:message>
>     <wsdl:message name="testRequest">
>         <wsdl:part name="in0" type="tns1:Number"/>
>     </wsdl:message>
>     <wsdl:portType name="StockQuoteService">
>         <wsdl:operation name="test" parameterOrder="in0">
>             <wsdl:input message="impl:testRequest" name="testRequest"/>
>             <wsdl:output message="impl:testResponse" name="testResponse"/>
>         </wsdl:operation>
>     </wsdl:portType>
>     <wsdl:binding name="quotesSoapBinding" type="impl:StockQuoteService">
>         <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="test">
>             <wsdlsoap:operation soapAction=""/>
>             <wsdl:input name="testRequest">
>                 <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> namespace="http://stock.samples"; use="encoded"/>
>             </wsdl:input>
>             <wsdl:output name="testResponse">
>                 <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> namespace="http://192.168.0.2:8080/axis/services/quotes"; use="encoded"/>
>             </wsdl:output>
>         </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:service name="StockQuoteServiceService">
>         <wsdl:port binding="impl:quotesSoapBinding" name="quotes">
>             <wsdlsoap:address
> location="http://192.168.0.2:8080/axis/services/quotes"/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
>
> Basically I have a service with a test() method that takes a complexType
> Number and returns another complexType Number. I've been able to return
> things from the test method and bind them to a Number object or just use
> ->{"data"} to access the result. I cannot pass objects correctly though.
>
> All my attempts at passing objects result in "org.xml.sax.SAXException: No
> object was found for class type class samples.stock.StockQuoteService."
I'm
> not sure what I'm doing wrong or if my wsdl is incorrect. What is the
proper
> way to pass a complex type to an object? I've tried using wsdl2php but I
> received the same error so I assume my wsdl must be incorrect.
>
> Can someone please help? Any pointers will be appreciated.
>
> Pat

-- 
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