EJB 3.1 JSR定义

时间:2012-10-10 11:40:29

标签: ejb jndi jsr

在EJB 3.1 JSR中,它在第16.3.4节中说明

  

容器必须确保企业bean实例具有   只读取对其环境变量的访问权限。容器必须   抛出所有的javax.naming.OperationNotSupportedException   修改的javax.naming.Context接口的方法   环境命名上下文及其子上下文。

问题1 :根据JSR,从无状态bean方法添加/编辑一个对象,让字符串“hello”到JNDI是不合法的吗?

所以如果这是真的,下面的代码应该会失败,但是当我在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认证,这就是为什么我要问这个,所以没有必要评论为什么我会这样做=)

1 个答案:

答案 0 :(得分:1)

我确实相信EJB规范所说的是真的。 ENC是一个只读命名空间 - 在JBoss AS 7.1.1上试一试,它应该失败。

您可能感兴趣的一些进一步阅读: