Ich erstelle Proxies mit Javassist ProxyFactory
. Beim Erstellen eines einzelnen Proxy funktioniert alles einwandfrei.Javassist: wie Proxy-Proxy erstellen?
Wenn jedoch ich ein Proxy-Objekt zum Proxying Mechanismus übergeben, schlägt es mit
javassist.bytecode.DuplicateMemberException: duplicate Methode: SetHandler in com.mypackage.Bean _ $$ _ _ javassist_0 $$ _ javassist_1
ich schaffe die Proxys mit diesem:
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();
}
So, wie erstelle ich Proxies von Proxies?
Update: Die eigentlichen Probleme ist, dass jeder Proxy die ProxyObject
implementiert die setHandler(..)
Methode definiert. Daher versucht der 2. Proxy die Methode neu zu definieren, anstatt sie in der Unterklasse zu überschreiben.
BTW, scheint dies die erste Frage über Javassist zu sein. Ich bin überrascht. – Bozho