Does every instance of soap.rpc.Call *need* it own instance of
SOAPMappingRegistry?

On the server side, in the RPCRouterServlet, a new Call instance is created
for every incoming request.  For every new Call instance, a new
SOAPMappingRegistry is created.  The default SOAPMappingRegistry creates new
instances of Serializer/Deserializer classes, even though these
serialzer/deserializer classes carry no state, and even if a
serializer/deserializer for a given type is never used by the Call.  So if I
have 10 concurrent requests, I'll have 10 instances of
org.apache.soap.encoding.soapenc.DateSerializer in memory, even if they
never get used!

Object creation in Java is expensive.  Shouldn't there be one globally
reusable SOAPMappingRegistry that all Call instances get a reference to by
default?  If that's not possible, then at the very least, there should only
ever be one instance of each Serializer/Deserializer class in memory at one
time.  Why create new instances of classes that don't have any state?

Must each Call have its own SOAPMappingRegistry instance?

I can see why some people report 375 ms to create a Call object....

t

Reply via email to