我面临着一个特殊的问题。下面是我得到的错误的堆栈跟踪。请帮忙。
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)
答案 0 :(得分:1)
EclipseLink可以在应用程序重新部署的情况下检查类加载器更改。当从Web容器和EJB容器调用特定会话的SessionManager时,这可能会导致问题。
确保使用API getSession(null,sessionName,classLoader,true,false)或使用较长签名的相同方法来禁用此classLoader检查。如果您希望直接构造XMLSessionConfigLoader,可以通过xmlSessionConfigLoader.setShouldCheckClassLoader(false)直接禁用类加载器检查。
答案 1 :(得分:0)
您是否尝试过使用单一对象的sessionmanager?这样,你应该总是获得相同的manager-instance,并且应该没有classloader-issues。