我们最近从 WebLogic Portal 9.2.3 升级到了 10.3.5。我们有一个通过 Day Software JSR-170 VCR-JCR 提供程序连接的 JackRabbit 存储库。这在 9.2.3 上一切正常,但在 10.3.5 上,当我们尝试检索内容时,我们得到了 IllegalMonitorStateException。我们在 JackRabbit 之上有自己的外观,它实现了 JCR-170。这是从服务器调试出来的:
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.initializeSessionState():1215] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2b70161: (re)initializing all repo sessions for username: <WLS Kernel>
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.initializeSessionState():1215] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2bf2311: (re)initializing all repo sessions for username: <WLS Kernel>
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.initializeSessionState():1215] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2fa5952: (re)initializing all repo sessions for username: <anonymous>
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.ensureConnectedToRepository():801] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2fa5952: no session found for repoName=indhold; need to connect
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.ensureConnectedToRepository():821] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2fa5952: connect write lock acquired for repoName=indhold
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.connectToRepository():875] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2fa5952: connecting to repositoryName= indhold
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.getRepositoryClass():1503] invoking Class.forName(repoClassName)
[com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.getRepository():1403] com.bea.content.federated.internal.delegate.RepositoryManagerDelegate@2fa5952: Ticket authentication error for: indhold java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:363)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1317)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:745)
at com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.getRepositoryClass(RepositoryManagerDelegate.java:1537)
at com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.getRepository(RepositoryManagerDelegate.java:1327)
at com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.connectToRepository(RepositoryManagerDelegate.java:893)
at com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.ensureConnectedToRepository(RepositoryManagerDelegate.java:832)
at com.bea.content.federated.internal.delegate.RepositoryManagerDelegate.connect(RepositoryManagerDelegate.java:1160)
at com.bea.content.federated.internal.delegate.RepositoryHelper.checkCapability(RepositoryHelper.java:759)
at com.bea.content.federated.internal.CapabilityManagerImpl.checkRepositoryCapability(CapabilityManagerImpl.java:57)
at com.bea.content.federated.internal.ManagerImplCapabilityHelper.checkCapability(ManagerImplCapabilityHelper.java:80)
at com.bea.content.federated.internal.ManagerImplCapabilityHelper.verifyCapability(ManagerImplCapabilityHelper.java:54)
at com.bea.content.federated.internal.NodeManagerImpl.getNode(NodeManagerImpl.java:432)
at dk.skat.portal.front.helper.ContentHelper.getNode(ContentHelper.java:1591)
似乎 authenticationn 失败了,但是如果我尝试在存储库中的登录方法中设置断点(我们的 Facade,它不做任何身份验证挑战,只是包装 JackRabbit,并登录同一个用户 - “默认“ - 对于所有访问),我们永远不会被调用。在 Manage Repositories 页面上设置用户名和密码,似乎没有任何效果。另一方面,如果我转到门户管理控制台,并尝试管理或浏览存储库,一切正常,并且实际调用了登录方法,并且服务器可以很好地连接到存储库。这似乎很奇怪。在某些情况下(碰巧随机发生,我们可以让服务器突然访问存储库,但在服务器重新启动时,它又回到失败状态)。
我尝试将存储库的用户名/密码设置为 weblogic 用户,但这似乎没有任何效果,我仍然收到错误消息。此外,当我进入 PAC 并注销、关闭浏览器、重新打开浏览器或完全不同的浏览器时,进入 PAC 似乎会激活存储库以使其在线(尽管这不是稳定的或不希望的)。
请建议,如果 WebLogic 中存在错误(似乎它试图解锁() ReadLock 太多次,导致提到的异常 - 它是否应该在该异常上失败??,是否应该在之前检查锁定计数解锁?),或者如果 w 做错了什么?我可以读到 10.3.5 的 eclipse 工具中有一个已知的错误,正是这个错误。
此外,我们在 9.2.3 中似乎没有遇到任何问题,那么 10.3.5 中发生了什么变化?