我有具有遠程接口TimeService的EJB TimeServiceEJB。在我的EJB模塊的部署描述符有:從遠程客戶端獲取並設置<env-entry>
<ejb-name>TimeServiceEJB</ejb-name>
...
<env-entry>
<description>... </description>
<env-entry-name>variable</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
我需要從客戶端應用程序這個變量,可以對其進行編輯。我試圖這樣做:
Properties p = new Properties();
p.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
p.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
p.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
p.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
p.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext iniCtx = new InitialContext(p);
Integer variable = (Integer) iniCtx.lookup("java:comp/ejb/TimeServiceEJB/variable");
但我什麼也沒得到。嘗試以不同的方式查找(「java:global/ejb/TimeServiceEJB/variable」,「java:comp/env/TimeServiceEJB/variable」,「java:global/ear-name/module-name/TimeServiceEJB /) - 「javax.naming.NameNotFoundException:No object bound for ...」
試圖通過annotaion @Resource(name =「variable」,mappedName =「env/variable」)設置此變量的mappingName,並通過「 ENV /變量」,但得到的NameNotFoundException
是否有任何想法,如何讓這個變量,第二個問題是:??我可以修改它的值
thanx for answer! – Peter 2012-02-06 08:57:17