Estoy creando proxies con javassist ProxyFactory
. Al crear un solo proxy, todo funciona bien.Javassist: ¿cómo crear proxy de proxy?
Sin embargo, al pasar un objeto proxy al mecanismo de proxy, falla con
javassist.bytecode.DuplicateMemberException: duplicar método: SetHandler en com.mypackage.Bean _ $$ _ javassist_0 _ $$ _ javassist_1
estoy creando los proxies con esto:
public Object createProxiedInstance(Object originalInstance) throws Exception {
Class<?> originalClass = instance.getClass();
ProxyFactory factory = new ProxyFactory();
factory.setSuperclass(originalClass);
factory.setHandler(new MethodHandler() {..});
Class<T> proxyClass = factory.createClass();
return proxyClass.newInstance();
}
Entonces, ¿cómo puedo crear proxies de proxy?
Actualización: Los problemas reales es que cada proxy implementa el ProxyObject
que define setHandler(..)
método. Por lo tanto, el segundo proxy intenta redefinir el método, en lugar de anularlo en la subclase.
por cierto, esta parece ser la primera pregunta sobre javassist. Estoy sorprendido. – Bozho