I tried to create WSDL with rails 1.2.6 but when I tried to return a custom data type rather than built in data type in my web API, I got this kind of WSDL data(I have not put entire WSDL file here but just few parts of it). I tried to compile it in java but could not compile it. Looks like rails is not returning proper WSDL file which can be used directly for other clients. When we have custom data type(complex data type) as parameters or return values,rails generates this kind of errornous WSDL. Does anybody has any solution??? Did I miss anything very obvious?? ******** <xsd:complexType name="RESOURCECODEArray"> <xsd:complexContent> <xsd:restriction base="soapenc:Array"> <xsd:attribute wsdl:arrayType="typens:RESOURCECODE[]" ref="soapenc:arrayType"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <message name="Browse"> </message> <message name="BrowseResponse"> <part name="return" type="typens:RESOURCECODEArray"/> </message> ******** Thanks, -Kalpesh -- Posted via http://www.ruby-forum.com/.
Not sure if you''ll get much help on this; 1.2.6 is over 2 years old now, and there''s been a pretty big move away from the whole WSDL/SOAP system. You may want to take a look at this project, which brings ActionWebService into Rails 2.3-land: http://github.com/datanoise/actionwebservice --Matt Jones On Nov 2, 12:12 pm, Kalpesh1 Patel <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> I tried to create WSDL with rails 1.2.6 but when I tried to return a > custom data type rather than built in data type in my web API, I got > this kind of WSDL data(I have not put entire WSDL file here but just few > parts of it). I tried to compile it in java but could not compile it. > Looks like rails is not returning proper WSDL file which can be used > directly for other clients. When we have custom data type(complex data > type) as parameters or return values,rails generates this kind of > errornous WSDL. Does anybody has any solution??? Did I miss anything > very obvious?? > > ******** > <xsd:complexType name="RESOURCECODEArray"> > <xsd:complexContent> > <xsd:restriction base="soapenc:Array"> > <xsd:attribute wsdl:arrayType="typens:RESOURCECODE[]" > ref="soapenc:arrayType"/> > </xsd:restriction> > </xsd:complexContent> > </xsd:complexType> > > <message name="Browse"> > </message> > > <message name="BrowseResponse"> > <part name="return" type="typens:RESOURCECODEArray"/> > </message> > ******** > > Thanks, > -Kalpesh > -- > Posted viahttp://www.ruby-forum.com/.
Thanks Matt for the response. I thought nobody is going to reply! Initially I started with Rails 2.3.3 only but even the basic web service was not working. The error was "Uninitialized constant actionwebservice". I have tried all the options but could not get around. I have tried with datanoise(as mentioned in your mail) as well but different error. Probably you can help. Here is my API class. ******* require ''action_service'' class PersonAPI < ActionService::Base export :add, :expects => [Integer], :returns => [Integer] end ******* I get "uninitialized constant ActionService::Exporting::ClassMethods::Inflector" error. Can you tell me what could be the problem? So FINALLY I downgraded to Rails 1.2.6 and it worked smoothly thereafter. It doesn''t throw such weird errors. I am still looking for the solution with Rails 2.3. Do you have any "working" tutorial or something? That would be very helpful. And for the problem I mentioned in my initial mail, I got the solution myself. Actually I have to add XML Namespaces inside <definitions> tag like this, ********* <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:typens="urn:mywebservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="WebService" targetNamespace="urn:mywebservice"> ********* it worked after that. Best Regards, -Kalpesh On Wed, Nov 4, 2009 at 1:46 AM, Matt Jones <al2o3cr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > Not sure if you''ll get much help on this; 1.2.6 is over 2 years old > now, and there''s been a pretty big move away from the whole WSDL/SOAP > system. > > You may want to take a look at this project, which brings > ActionWebService into Rails 2.3-land: > > http://github.com/datanoise/actionwebservice > > --Matt Jones > > > On Nov 2, 12:12 pm, Kalpesh1 Patel <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > wrote: >> I tried to create WSDL with rails 1.2.6 but when I tried to return a >> custom data type rather than built in data type in my web API, I got >> this kind of WSDL data(I have not put entire WSDL file here but just few >> parts of it). I tried to compile it in java but could not compile it. >> Looks like rails is not returning proper WSDL file which can be used >> directly for other clients. When we have custom data type(complex data >> type) as parameters or return values,rails generates this kind of >> errornous WSDL. Does anybody has any solution??? Did I miss anything >> very obvious?? >> >> ******** >> <xsd:complexType name="RESOURCECODEArray"> >> <xsd:complexContent> >> <xsd:restriction base="soapenc:Array"> >> <xsd:attribute wsdl:arrayType="typens:RESOURCECODE[]" >> ref="soapenc:arrayType"/> >> </xsd:restriction> >> </xsd:complexContent> >> </xsd:complexType> >> >> <message name="Browse"> >> </message> >> >> <message name="BrowseResponse"> >> <part name="return" type="typens:RESOURCECODEArray"/> >> </message> >> ******** >> >> Thanks, >> -Kalpesh >> -- >> Posted viahttp://www.ruby-forum.com/. > > >
On Nov 4, 4:20 am, Kalpesh Patel <kalpesh...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Thanks Matt for the response. I thought nobody is going to reply! > Initially I started with Rails 2.3.3 only but even the basic web > service was not working. The error was "Uninitialized constant > actionwebservice". I have tried all the options but could not get > around. I have tried with datanoise(as mentioned in your mail) as well > but different error. Probably you can help. Here is my API class. > > ******* > require ''action_service'' > class PersonAPI < ActionService::Base > export :add, :expects => [Integer], :returns => [Integer] > end > ******* > I get "uninitialized constant > ActionService::Exporting::ClassMethods::Inflector" error. Can you tell > me what could be the problem? >No idea - I''ve never actually done much with the SOAP stuff. I can''t even find a reference in the datanoise/actionwebservice code that would *generate* an error like that. Do you have a recent version?> So FINALLY I downgraded to Rails 1.2.6 and it worked smoothly > thereafter. It doesn''t throw such weird errors. I am still looking for > the solution with Rails 2.3. Do you have any "working" tutorial or > something? That would be very helpful.Google couldn''t find any that looked useful; you may want to see if the examples in the datanoise repo are helpful. --Matt Jones