java - SOAP : How to make generic method that provides response to all operations of WSDL dynamically -


i trying create webservice simulator can create soap webservices providing .xsd or xml file. after providing xml/xsd wsdl file generated , reason trying make serviceendpoint class methods generic single method provides response operations.

till have made sample code test how soap web service generated using spring web service , uses jaxp apis. want make following method generic provides response operations :

@payloadroot(namespace = namespace_uri, localpart = "getstudentrequest") @responsepayload public getstudentresponse getcountry(@requestpayload getstudentrequest request) {     getstudentresponse response = new getstudentresponse();     response.setstudent(studentutility.getstudent(request.getstudentid()));     return response; 

as of above method binded specific operation getstudentrequest please me know how can make above method generic provides response operations.

please find below xsd file through generating wsdl file:

<xs:element name="getstudentrequest">     <xs:complextype>         <xs:sequence>             <xs:element name="studentid" type="xs:int"/>         </xs:sequence>     </xs:complextype> </xs:element> <xs:element name="getstudentresponse">     <xs:complextype>         <xs:sequence>             <xs:element name="student" type="tns:student"/>         </xs:sequence>     </xs:complextype> </xs:element> <xs:complextype name="student">     <xs:sequence>         <xs:element name="studentid" type="xs:int"/>         <xs:element name="name" type="xs:string"/>         <xs:element name="age" type="xs:int"/>         <xs:element name="class" type="xs:string"/>     </xs:sequence> </xs:complextype> 

you can try using generics in method below:

public <t extends irequest, r extends iresponse> r getcountry(@requestpayload t request) { 

to make work, coresponding request , response must sub classed.

class getstudentrequest implements irequest{} class getstudentresponse implements iresponse{} 

if yor generating code using apache cxf or jaxb, can done providing jaxb custom binding inheritance plugin create request/response classes interface implemented.

for eg.

<inheritance:implements>mypackage.irequest</inheritance:implements>  

Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -