更新 jre 6 版本 24 导致 ClassCircularityError

更新 jre 6 版本 24 导致 ClassCircularityError

我正在使用 jnlp 文件运行一个小程序。该小程序运行良好。今天我将 jre 升级到 jre 6 版本 24,但我的应用程序在启动画面后停止。我卸载了 jre 并重新安装了 jre 6 版本 22,它运行良好。问题是所有使用此应用程序的人都拥有 jre 的自动更新,这会自动将 jre 更新到 24。我们不建议禁用此自动更新。

当我尝试使用通常的安全凭证访问 weblogic 上下文时,客户端日志给出了异常。我的 weblogic 版本是 10.3

InitialContext initialContext = new InitialContext(prop);

java.lang.ClassCircularityError: weblogic/security/acl/internal/Security
java.lang.ClassCircularityError: weblogic/security/acl/internal/Security
    at weblogic.net.http.HttpsURLConnection.<init>(HttpsURLConnection.java:57)
    at weblogic.net.http.HttpsURLConnection.<init>(HttpsURLConnection.java:65)
    at weblogic.net.http.SOAPHttpsURLConnection.<init>(SOAPHttpsURLConnection.java:30)
    at weblogic.net.http.Handler.openConnection(Handler.java:31)
    at weblogic.net.http.Handler.openConnection(Handler.java:23)
    at java.net.URL.openConnection(Unknown Source)
    at sun.net.www.protocol.jar.JarURLConnection.<init>(Unknown Source)
    at com.sun.jnlp.JNLPCachedJarURLConnection.<init>(Unknown Source)
    at com.sun.javaws.net.protocol.jar.Handler.openConnection(Unknown Source)
    at java.net.URL.openConnection(Unknown Source)
    at com.sun.deploy.util.URLUtil.checkTargetURL(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at weblogic.protocol.ServerURL.asUnsyncStringBuffer(ServerURL.java:533)
    at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:215)
    at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
    at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
    at weblogic.jndi.WLInitialContextFactoryDelegate$1.run(WLInitialContextFactoryDelegate.java:344)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:339)
    at weblogic.jndi.Environment.getContext(Environment.java:315)
    at weblogic.jndi.Environment.getContext(Environment.java:285)
    at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.init(Unknown Source)
    at javax.naming.InitialContext.<init>(Unknown Source)

答案1

这可能与https://bugs.java.com/bugdatabase/view_bug?bug_id=7020709 当我使用自定义处理程序并尝试从 Java 小程序调用 JavaScript 函数(如 new Url("javascript:myFunction()"))时,我遇到了同样的异常。有人建议使用不同的 StreamClientImpl。也许它有效,但我没有检查。

相关内容