Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > WSDL: Only one fault per operation?

Reply
Thread Tools

WSDL: Only one fault per operation?

 
 
Oliver M. Bolzer
Guest
Posts: n/a
 
      11-11-2003
Hi!

I'm currently building a simple request-response style webservice using
SOAP4R and describing it in WSDL, so that it can easily be used from multiple
langages.

I was wondering how best I should describe the exceptions my methods will be
raising. First, I defined two compexType's that look like what SOAP4R actually
throws.

<wsdl:types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://fakeroot.net/webservice/rbg/ver1/">
<complexType name="AuthenticationError">
<all>
<element name="message" type="xsd:string" />
<element name="backtrace" type="xoapenc:Array" />
</all>
</complexType>
<complexType name="AuthorizationError">
<all>
<element name="message" type="xsd:string" />
<element name="backtrace" type="xoapenc:Array" />
</all>
</complexType>
</xsd:schema>
</wsdl:types>

and then, defined each of them as a message.

<wsdl:message name="authentication_ERROR" >
<wsdlart name="exception" type="tns:AuthenticationError" />
</wsdl:message>
<wsdl:message name="authorization_ERROR" >
<wsdlart name="exception" type="tns:AuthorizationError" />
</wsdl:message>

Finally I bound the two messages to my operation with the <fault/> element
<wsdlortType name="FooService">
<wsdlperation name="dosomething">
<wsdl:input message="tns:dosomething_IN" />
<wsdlutput message="tns:dosomething_OUT" />
<wsdl:fault message="tns:authentication_ERROR" />
<wsdl:fault message="tns:authorization_ERROR" />
</wsdlperation>
</wsdlortType>


The AuthenticationError and AuthorizationError classdefs are generated according
to the type-definition (naturally, similart to Ruby's Exception class) but
using the XML-code above, only AuthorizationError inherits from StandardError,
AuthenticationError doesn't. If I swap the two <fault> tags above, only
AuthorizationError inherits but AuthenticationError doesn't.

Looking at SOAP4R 1.5.0's wsdl/operation.rb, it seems that it only supports
one fault per operation, overriding earlier <fault>s with later occuring ones
in WSDL::Operation#parse_element().
But the WSDL 1.1 schema states that an <operation> can have multiple <faults>.

...
<element name="operation" type="wsdlperationType"/>
<complexType name="operationType">
....
<element ref="wsdl:fault" minOccurs="0" maxOccurs="unbounded"/>
....
</complexType>


A bug in SOAP4R 1.5.0 ? Or I might be misunderstanding something.
Or is there any recommended/proper way to declare the exceptions that
my SOAP4R-service will raise in WSDL, in a langage-independent way ?

--
Oliver M. Bolzer
http://www.velocityreviews.com/forums/(E-Mail Removed)

GPG (PGP) Fingerprint = 621B 52F6 2AC1 36DB 8761 018F 8786 87AD EF50 D1FF

 
Reply With Quote
 
 
 
 
NAKAMURA, Hiroshi
Guest
Posts: n/a
 
      11-12-2003
Hi, Oliver,

Thank you for the report. Summary: It's a bug of SOAP4R. I'll fix it
soon.

> From: "Oliver M. Bolzer" <(E-Mail Removed)>
> Sent: Tuesday, November 11, 2003 11:14 PM


> Looking at SOAP4R 1.5.0's wsdl/operation.rb, it seems that it only supports
> one fault per operation, overriding earlier <fault>s with later occuring ones
> in WSDL::Operation#parse_element().
> But the WSDL 1.1 schema states that an <operation> can have multiple <faults>.


Yes. You are completely right. SOAP4R must accept multiple fault
definitions in WSDL operation element. I misunderstood the spec.

Regards,
// NaHi

 
Reply With Quote
 
 
 
 
NAKAMURA, Hiroshi
Guest
Posts: n/a
 
      11-12-2003
Hi, again,

> From: "NAKAMURA, Hiroshi" <(E-Mail Removed)>
> Sent: Wednesday, November 12, 2003 10:33 AM


> Thank you for the report. Summary: It's a bug of SOAP4R. I'll fix it
> soon.


Fixed in the CVS of soap4r. Can you try the latest version
(SOAP4R/1.5.1.2 + the fix) ?
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/lib/soap4r/

Regards,
// NaHi

 
Reply With Quote
 
 
 
Reply

Thread Tools

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 On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Why NOT only one class per file? Dillon Collins Python 44 04-10-2007 11:13 PM
Quick one - Is SESSION per browser instance or per IP Address? =?Utf-8?B?S01aX3N0YXRl?= ASP .Net 7 04-10-2006 03:38 AM
Static class - one per JVM or one per app? junk1@davidbevan.co.uk Java 5 12-20-2004 08:26 PM
Static class - one per JVM or one per app? junk1@davidbevan.co.uk Java 0 12-20-2004 08:15 PM
BC Pics & only one question per post is standard usenet policy Joe Huska Digital Photography 0 08-27-2003 05:23 PM



Advertisments