[Catalyst] Catalyst::Controller::SOAP "no operation `index' for
portType" error
Zbigniew Lukasiak
zzbbyy at gmail.com
Fri Nov 28 09:46:36 GMT 2008
On Thu, Nov 27, 2008 at 10:10 PM, Ian Sillitoe <ian at sillit.com> wrote:
> I've been playing with this recently. What have you actually defined your
> endpoint to be in the WSDL?
>
> <definition>
>
> ...
>
> <service name="MyService">
> <port name="MyServicePort" binding="tns:MyServiceBinding">
> <soap:address location="http://example.com/service"/>
>
> </port>
> </service>
> </definition>
Here is the definition:
<service name="SMS">
<documentation>gSOAP 2.7.12 generated service definition</documentation>
<port name="SMS" binding="tns:SMS">
<SOAP:address location="http://localhost:1234/sms/"/>
</port>
</service>
>
> I think the example in the synopsis shows you how to set up an endpoint for:
>
> /service/index
>
> Which then dispatches to, e.g.
>
> /service/operation1
> /service/operation2
>
> Did you mean that? The usual behaviour is for the endpoint to be set to the
> root path - e.g.
>
> /service
>
> If this is what you meant then:
>
> sub index :Path('') SOAP('RPCEndpoint') {}
>
> or just use one of the subclassed controllers which sets this default
> behaviour for you (depending on your style of WSDL)
>
> use base qw/C::C::SOAP::RPC/;
> # or
> use base qw/C::C::SOAP::DocumentLiteralWrapped/;
>
Hmm - the subclassed controllers work, but the original one with 'sub
index' does not, no matter what I try (:Local, :Path('')).
When I read the code for C::C::SOAP::DLW it has:
sub rpc_endpoint :Path('') :ActionClass('SOAP::DocumentLiteralWrapped') { };
instead of index.
--
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
http://perlalchemy.blogspot.com/
More information about the Catalyst
mailing list