Я знаю, что не должен использовать отражение, но это временное решение, пока ...Java отражение не изменяя мои @Named переменного боба
У меня есть 1:
@Named("PoiBean")
@SessionScoped
public class PoiBean implements ActionContext, Serializable {
private String name = "www";
@EJB
private NavigationServiceRemote nav;
@PostConstruct
private void testReflection() {
try {
nav.TestMe(this);
} catch (NoSuchMethodException ex) {
Logger.getLogger(PoiBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(PoiBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(PoiBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
Logger.getLogger(PoiBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void prepareListAllForm() {
this.setName("test me");
}
}
У меня есть 2:
@Stateless(mappedName="NavigationService")
public class NavigationServiceBean implements NavigationServiceRemote, NavigationContext {
@Override
public void TestMe(ActionContext ctx) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Method method = ctx.getClass().getMethod("prepareListAllForm", new Class[] {});
method.invoke(ctx, new Object[] {});
}
Объясняет: при запуске PoiBean EJB nav вводится, после чего в @PostConstruct я вызываю метод тестирования TestMe.
Когда я отлаживаю, перед тестированием меня name = www, внутри PoiBean :: prepareListAllForm (вызванный отражением), переменная имени изменяется = "проверить меня", а после возвращения имя возвращается на www.
Это как отражение вызывает prepareListAllForm на копии PoiBean ...
То, что я пытаюсь достичь сейчас, чтобы изменить эту переменную с помощью функции prepareListAllForm, вызывается с помощью отражения от @EJB.
Да действительно отмечен как удаленный интерфейс. Это знак, который я должен прочитать больше. Tnx для вашего ответа! – Baiazid
Если ответ решил вашу проблему, вы должны «принять» его, чтобы улучшить свой рейтинг (и мой!). –
Я сделал сейчас, извините, что впервые в этом веб-сайте и не знал, как это работает. – Baiazid