我正在尝试从 GWT 开发模式中执行 JNDI 查找。
我有一个本地 glassfishv3 运行着我想要查找的 EJB。如果我将 GWT-Webapp 部署到所述 glassfish 中,一切都会按预期进行。但是如果我尝试从 devmode 中查找 EJB,我会得到这个异常:
javax.naming.NamingException: Lookup failed for 'myBean' in SerialContext [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext [Root exception is java.lang.NullPointerException]] ... Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext [Root exception is java.lang.NullPointerException]
at com.sun.enterprise.naming.impl.SerialContext.getProvider (SerialContext.java:276)
at com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:430)
... 22 more Caused by: java.lang.NullPointerException
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider (SerialContext.java:297)
at com.sun.enterprise.naming.impl.SerialContext.getProvider (SerialContext.java:271)
... 23 more
似乎嵌入式 jetty 在类路径中找不到类“SerialContextProvider”。
我尝试将 gf-client.jar 和 glassfish-naming.jar 添加到类路径(除了将 glassfish v3 添加到 eclipse 中的目标运行时),但无济于事。
我什至整理了一个小示例(可在此处找到:http://satansoft.de/jnditest/jnditest.tgz),其中包含一个简单的 EJB 项目以及一个执行查找的 GWT 项目。 该存档还包含一个小型 CLI 客户端,在类路径中与 gf-client.jar 一起运行时可以正常工作。
我也在官方 gwt 邮件列表上问过这个问题,但那里没有人能帮助我。
那么:有人能够从 GWT devmode 中对 glassfish v3 执行 JNDI 查找吗?
最佳答案
将 Glassfish 模块目录中的所有 jar 添加到 Eclipse GWT 项目的 war/WEB-INF/lib 目录中。
关于java - 从 GWT 开发模式到 glassfish v3 的 EJB JNDI 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2178410/