“线程中的异常”;螺纹-102“;java.lang.NoClassDefFoundError:javax.ejb.EJBHome
当代码执行初始上下文查找并将其存储在EJBHome对象中时,从第2行引发异常“线程中的异常”;螺纹-102“;java.lang.NoClassDefFoundError:javax.ejb.EJBHome,java,multithreading,ejb,websphere,websphere-8,Java,Multithreading,Ejb,Websphere,Websphere 8,当代码执行初始上下文查找并将其存储在EJBHome对象中时,从第2行引发异常 我已经多次看到这个问题,并尝试了几种解决方案,例如在类路径和清单中包含j2ee.jar。但是,他们的解决方案可能不适用于此问题,因为它发生在线程上 您不应该在EJB中使用用户定义的线程 EJB容器负责管理与系统相关的功能,如安全性、线程、资源池等。为了控制组件操作的这些方面,容器对其管理的组件施加了某些限制 请参见这是一个独立的java客户端、“远程服务器内”客户端还是“同一服务器内”客户端?这是一个相同的服务器客户端
我已经多次看到这个问题,并尝试了几种解决方案,例如在类路径和清单中包含j2ee.jar。但是,他们的解决方案可能不适用于此问题,因为它发生在线程上 您不应该在EJB中使用用户定义的线程 EJB容器负责管理与系统相关的功能,如安全性、线程、资源池等。为了控制组件操作的这些方面,容器对其管理的组件施加了某些限制
请参见这是一个独立的java客户端、“远程服务器内”客户端还是“同一服务器内”客户端?这是一个相同的服务器客户端。您需要从部署中删除包含任何java EE API或实现的每个jar,尤其是j2ee.jar。什么样的代码正在生成线程?EJB还是servlet?它是EJB。如果我去掉j2ee.jar,代码将在哪里检索对EJBHome类的引用?服务器将提供它。它在哪个服务器(和版本)上运行?
1 InitialContext initialContext = new InitialContext();
2 EJBHome ejbHome = (EJBHome) initialContext.lookup(jndiLocation);
3 Class ejbHomeClass = ejbHome.getClass();
4 Method createMethod = ejbHomeClass.getMethod("create", new Class[] { });