Samuel Alexander Gnanaraj created AXIS2-5647:
------------------------------------------------
Summary: Hierarchical RESTful resources support
Key: AXIS2-5647
URL: https://issues.apache.org/jira/browse/AXIS2-5647
Project: Axis2
Issue Type: Bug
Components: kernel, wsdl
Affects Versions: 1.6.2
Reporter: Samuel Alexander Gnanaraj
Fix For: 1.6.2
Attachments: Order.wsdl2
REST resources can be like the below
HTTP GET http:/www.example.com/customer/{customerID}
HTTP GET http:/www.example.com/customer/{customerID}/orders/{orderID}/
HTTP GET
http:/www.example.com/customer/{customerID}/orders/{orderID}/orderitem/{itemnumber}
Customer Details can be fetched using the first resource. Order details of a
specific customer can be fetched using second resource. Item details of a
specific order of a customer can be fetched using last resource.
Corresponding WSDL with these operations are attached (Customer.wsdl2)
While executing the above service (Created an aar with System.out.println in
skeleton), the last resource is executed successfully. But while executing the
first two resources, “String index out of range” exception is thrown.
During the service deployment Axis2 builds the HTTP Location Table for the
above service as follows.
GET/customer - AxisOperation Object of OrderItem
GET/orders - AxisOperation Object of OrderItem
GET/orderitem - AxisOperation Object of OrderItem
This is because Axis2 removes the parmeters (Dynamic variables whose values are
expected to be sent at runtime) that are declared in the whttp:location element
To solve this HTTP Location Table has to be populated with parameters as well.
In that case the HTTP Location Table for the above service will be
GET/customer - AxisOperation Object of Customer
GET/orders - AxisOperation Object of Orders
GET/orderitem - AxisOperation Object of OrderItem
And the HTTPLocationBasedDispatcher.findOperation has to find the operation
based on this populated HTTP Location Table.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]