0
我試圖將一個對象設置爲JNDI,然後對其進行遠程訪問。我正在使用TomEE 1.6.0。我設置使用的servlet這樣的sinple字符串:遠程JNDI訪問TomEE中的單個資源
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
try
{
Context ctx=new InitialContext();
ctx.bind("myKey","MY STRING");
}
catch(NamingException ex)
{
ex.printStackTrace();
}
}
運行,並且調用這個servlet之後,我嘗試使用這個獨立的主獲得通過JNDI的遠程訪問。
public static void main(String[] args) throws Exception
{
Context ctx = getContext();
String nom = (String)ctx.lookup("java:/comp/env/nombre");
System.out.println(nom);
}
private static Context getContext() throws Exception
{
Hashtable<String,String> t = new Hashtable<>();
t.put("java.naming.factory.initial","org.apache.openejb.client.RemoteInitialContextFactory");
t.put("java.naming.provider.url","http://127.0.0.1:8080/tomee/ejb");
return new InitialContext(t);
}
但它拋出一個像這樣的的NameNotFoundException:
Exception in thread "main" javax.naming.NameNotFoundException: /comp/env/nombre does not exist in the system. Check that the app was successfully deployed.
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:319)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at demo.TestJNDI.main(TestJNDI.java:13)
所以,我的問題有兩個:
1 - 我怎麼知道這是使用TomEE發佈此默認的JNDI名稱串? 2 - 如何將此字符串設置爲任何XML文件而不是servlet?
謝謝!
嗨,我想要的是通過聲明它在一些XML像tomee.xml或任何其他,然後可以通過JNDI上下文訪問此對象。 I.e:在tomee.xml中聲明: 。在此之後,在一個獨立的主要訪問myobject給它的jndi名稱。謝謝! –
pablosz