4

我面临一个特殊的问题。下面是我遇到的错误的堆栈跟踪。请帮忙。

Exception [TOPLINK-7001] (Oracle TopLink - 11g Release 1 (11.1.1.1.0) (Build 090527)): oracle.toplink.exceptions.ValidationException
Exception Description: You must login to the ServerSession before acquiring ClientSessions.
 at oracle.toplink.exceptions.ValidationException.loginBeforeAllocatingClientSessions(ValidationException.java:1155)
 at oracle.toplink.threetier.ServerSession.acquireClientSession(ServerSession.java:313)
 at oracle.toplink.threetier.ServerSession.acquireClientSession(ServerSession.java:303)
 at com.ofss.elcm.domain.Session.fetchClientSession(Session.java:113)
 at com.ofss.elcm.domain.Session.acquireUnitOfWork(Session.java:132)
4

2 回答 2

1

EclipseLink 具有在应用程序重新部署的情况下检查类加载器更改的功能。当从 Web 容器和 EJB 容器调用特定会话的 SessionManager 时,这可能会导致问题。

确保您使用 API getSession(null, sessionName, classLoader, true, false) 或具有较长签名的相同方法来禁用此 classLoader 检查。如果您希望直接构建 XMLSessionConfigLoader,您可以通过 xmlSessionConfigLoader.setShouldCheckClassLoader(false) 直接禁用类加载器检查。

于 2011-04-07T13:44:33.420 回答
0

您是否尝试过使用单例对象中的会话管理器?这样,您应该始终获得相同的管理器实例,并且不应该存在类加载器问题。

于 2010-08-03T11:32:27.860 回答