Problema no Carregador de Classe Customizada Java

Estou enviando um objeto de classe do cliente para o lado do servidor. Toda vez que o servidor precisa carregar o objeto Classe enviado pelo clienteem vez de reutilizar pelo modelo de delegação pai (quando foi carregado durante a 1ª iteração).

Estou tentando usar um carregador de classes personalizado no lado do servidor cujaloadClass(String) simplesmente chamafindClass() em vez de verificar com a hierarquia pai. Para conseguir isso, estou fazendo o seguinte:

Gere byte [] lendo o arquivo .class no lado do cliente, da seguinte maneira:
Class cl = com.example.XYZ.class;
String path = cl.getName().replace('.', '/') + ".class";
InputStream is = cl.getClassLoader().getResourceAsStream(path);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int data = -1;
while((data=is.read())!=-1)
  bos.write(data);
byte[] classBinaryData = bos.toByteArray();

Estou enviandoclassBinaryData para o lado do servidor.

No lado do servidor, toda vez que eu recupero obyte[], verifique se é o mesmo que no lado do cliente, combinando a soma de verificação MD5, então crio uma nova instância do meu carregador de classes personalizado e passo a matriz de bytes para que possa ser usada na chamadadefineClass de dentrofindClass.

No entanto, estou recebendo um dos erros (dependendo da maneira como eu crio byte [] da classe.)

Incompatible magic value ..... in class file <Unknown>

OU

com/example/XYZ (wrong name: com/example/XYZ) vindo dedefineClass

Preciso de ajuda para descobrir o erro na minha abordagem / código.

questionAnswers(0)

yourAnswerToTheQuestion