Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
3.0
-
None
-
None
-
None
Description
XmlRpcServlet currently doesn't support any other init param other than "enabledForExtension" which means that people will have to subclass XmlRpcServlet if they want to set e.g. contentLengthOptional.
After a discussion in xmlrpc-dev the following solution was decided upon:
1. iterate over ServletConfig.getInitParameterNames
2. foreach init param name check if there is a corresponding setter method (setter can only have one argument)
3. convert init param value to the data type that the setters argument has
Q: In step 3) what data types should be supported? byte, short, int, long, float, double and String?
A: Should simply reuse code from the ReflectionUtils. (Don't remember the class name right now, but there is existing functionality, which is used by the AbstractReflectiveXmlRpcHandlerMapping.
Q: What exception should be thrown (ServletException?) if no matching method can be found in step 2) or data type conversion fails in step 3)?
A: A ServletException mapping the actual exception (for example
IllegalArgumentException).