Сделайте вызов через экземпляр com.sun.proxy
У меня есть программа, которая выполняет поиск в службе именования. Странно то, что иногда поиск возвращает IOR, но иногда он возвращает экземпляр com.sun.proxy (например, com.sun.proxy.$Proxy0@573745ec, который кажется экземпляром).
Точно, код выглядит так:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"some.context.factory");
p.put(Context.PROVIDER_URL, host+":"+port);
p.put(Context.URL_PKG_PREFIXES, "some.package.prefixes");
InitialContext ctx = new InitialContext(p);
String ejbName = "some/lookup/string";
Object obj = ctx.lookup(ejbName);
затем obj
будет экземпляром com.sun.proxy. Как выполнить вызов некоторого метода в найденном EJB?
1 ответ
Вы можете привести прокси к типу, который он проксирует, а затем вызвать методы:
Foo foo = (Foo) obj;
foo.someMethod(...);
Если у вас нет типа, то вы можете использовать Java Reflection, чтобы запросить у прокси его методы, как это было бы с любым обычным экземпляром:
obj.getClass().getMethods();
Смотрите документацию Прокси.