You can't register a classloader until after the cache is started, as the marshaller is not created until after startService(). This causes problems, as replication events for a region may come in before the cl is registered, which will cause errors. See
for an example of this. There's a workaround, which is to inactivate the whole tree at startup, and force users to specifically activate regions, but this may not be acceptable in all use cases (plus its a pain).
We (meaning I, unless someone objects) should find a way to make the registerClassLoader API available before createService(), or at least before startService().