Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
The code provided in the "How to I get the clients IP address in a handler?" does not work. Specifically, the override of method newPropertyHandlerMapping(URL url) attempts to set a customized RequestSpecificProcessorFactoryFactory class but it does so too late for it to have any effect.
A correct (and cleaner) solution is to make use of the XmlRpcServlet.setRequestProcessorFactoryFactory() method which is intended for this purpose. This can be done in the constructor of the derived class. E.g.,:
public class MyXmlRpcServlet extends XmlRpcServlet
{
public MyXmlRpcServlet()
{
RequestProcessorFactoryFactory factory = new RequestSpecificProcessorFactoryFactory()
{
protected Object getRequestProcessor(Class pClass, XmlRpcRequest pRequest) throws XmlRpcException
};
setRequestProcessorFactoryFactory(factory);
}
.
.
.
}