On Tue, Nov 18, 2008 at 4:38 AM, keith chapman <[EMAIL PROTECTED]>wrote:
> Hi Manish, > > I am the one who wrote that article, the original was published at > http://wso2.org/library/3726. Nice to hear that you found it usefull. I > have answered your questions inline, Yeah, I knew you would be on this list thats why I posted. Thanks much for the input, I will try that out. I have actually followed Keith Chapman's article on webmonkey, which is >> here: >> >> http://www.webmonkey.com/tutorial/RESTful_Web_Services_with_Apache_Axis2 >> >> If I go with instrumenting REST using WSDL 2.0 , then my basic question >> referring to the above article is how can we actually make a POST (add new >> student) on /services/studentService/students or rather POST any basic or >> Complex Type. From the wsdl, addStudent(Student student) is the service >> method that will get called and it needs an argument which should be an >> object of class Student. >> In truly RESTful way, this should be a form POST and the data is url >> encoded or rather sent in application/x-www-form-urlencoded content type. If >> I have to say use this service with REST client in Python, I will have to >> know about the Student object ,is it? I am missing something here, can you >> explain? >> > This actually depends on your your request message is defined. In the > example I've provided I have used a POJO as the input to the service method, > and when a POJO is used the default schema generated by Axis2 is as follows, > > <xs:element name="addStudent"> > <xs:complexType> > <xs:sequence> > > <xs:element minOccurs="0" name="student" > nillable="true" type="ax21:Student"/> > </xs:sequence> > </xs:complexType> > > </xs:element> > <xs:complexType name="Student"> > <xs:sequence> > <xs:element minOccurs="0" name="age" type="xs:int"/> > > <xs:element minOccurs="0" name="name" nillable="true" > type="xs:string"/> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="subjects" nillable="true" type="xs:string"/> > > </xs:sequence> > </xs:complexType> > </xs:element> > > With a schema like this you cannot use the contentType > application/x-www-form-urlencoded (cause the server would not have enough > information to reconstruct the message). > Sure. Then if we have to use POJO style input to the service method, how can we make a POST in any content type? The reason I want to know is I know we can have simple data type POST's on a service method as you show below, but if a method needs to have 15 arguments as input, then it makes sense to actually send a structure with arguments as key/value pairs or something like that to a service method or in this case we have to use OMElement as argument to the service method? Thanks again... > If you want to use application/x-www-form- > > urlencoded then you could do this by modifying your service method as > follows. addStudent(Sring name, int age, String [] subjects) . This would > generate a schema similar to, > > <xs:element name="addStudent"> > > <xs:complexType> > <xs:sequence> > <xs:element minOccurs="0" name="age" type="xs:int"/> > > <xs:element minOccurs="0" name="name" nillable="true" > type="xs:string"/> > <xs:element maxOccurs="unbounded" minOccurs="0" > name="subjects" nillable="true" type="xs:string"/> > > </xs:sequence> > </xs:complexType> > </xs:element> > > This makes it possible to do what you are trying. > > Please have a look at > http://www.keith-chapman.org/2008/09/restfull-mashup-with-wsdl-20-wso2.htmlas > well. There I have shown how you could play around with the WSO2 Mashup > Server [1] (It runs on top of Axis2 and allows you to write service using > JavaScript with ease) and experiment with stuff. You could use that to write > services and validate your ideas in a flash. Hope this helps. > > Thanks, > Keith. > > [1] http://wso2.org/projects/mashup > >> On the other hand I could do POST, may not be ComplexType but of simple >> type if I have my service class returning an AXIOM OMElement object as well >> as taking OMElement object as an argument to the action methods but WSDL 2.0 >> way seems cleaner to me. >> >> Appreciate your feedback >> >> Thanks >> Manish >> > On Mon, Nov 17, 2008 at 10:11 PM, kat kat <[EMAIL PROTECTED]> wrote: > > > > -- > Keith Chapman > Senior Software Engineer > WSO2 Inc. > Oxygenating the Web Service Platform. > http://wso2.org/ > > blog: http://www.keith-chapman.org >
