В EJB 3.1 JSR это говорится в разделе 16.3.4.
Контейнер должен гарантировать, что экземпляры корпоративного компонента имеют доступ только для чтения к своим переменным среды. Контейнер должен генерировать исключение javax.naming.OperationNotSupportedException из всех методов интерфейса javax.naming.Context, которые изменяют контекст именования среды и его подконтексты.
Вопрос 1. Согласно JSR, незаконно добавлять / редактировать объект, скажем, строку «hello», в JNDI из метода bean-компонента без сохранения состояния?
Таким образом, следующий код должен потерпеть неудачу, если это правда, но при тестировании в моем jboss 6 он работает нормально.
public void RebindVars() throws NamingException{
Context ctx = new InitialContext();
String testString = (String) ctx.lookup("java:comp/env/testString");
String newString = "helloRebindFromJndi"; //Assume that this is a valid call.
if (!testString.equals(newString)) {
ctx.rebind("java:comp/env/testString", newString);
}
}
Вопрос 2: поскольку он работает в моем jboss, это реализация jboss, которая позволяет больше, чем требуется, или я полностью неправильно понял JSR?
Я прохожу сертификацию EJB, и поэтому я спрашиваю об этом, поэтому не нужно комментировать, почему я когда-либо делал это =)