Weblogic 错误 - 无法初始化 class weblogic.jndi.Environment

Weblogic Error - Could not initialize class weblogic.jndi.Environment

当我尝试使用 NetBeans 10 中的 Oracle Weblogic Server 调试配置为 运行 的 WebApp 时,我总是收到以下错误:

甚至没有复杂的步骤,我只是打开我的项目然后 right-click / Debug.

java.lang.NoClassDefFoundError: Could not initialize class weblogic.jndi.Environment
    at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
    at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:730)
    at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
    at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
    at java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)
    at weblogic.management.remote.common.ClientProviderBase.makeConnection(ClientProviderBase.java:178)
    at weblogic.management.remote.common.ClientProviderBase.newJMXConnector(ClientProviderBase.java:84)
    at java.management/javax.management.remote.JMXConnectorFactory.newJMXConnector(JMXConnectorFactory.java:378)
    at org.netbeans.modules.j2ee.weblogic9.WLConnectionSupport.call(WLConnectionSupport.java:182)
    at org.netbeans.modules.j2ee.weblogic9.WLConnectionSupport.executeAction(WLConnectionSupport.java:112)
    at org.netbeans.modules.j2ee.weblogic9.WLConnectionSupport.executeAction(WLConnectionSupport.java:161)
    at org.netbeans.modules.j2ee.weblogic9.deploy.WLDeploymentManager.getTargets(WLDeploymentManager.java:632)
    at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.getTargetMap(ServerInstance.java:560)
    at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.getTargets(ServerInstance.java:518)
    at org.netbeans.modules.j2ee.deployment.impl.ServerString.getTargets(ServerString.java:117)
    at org.netbeans.modules.j2ee.deployment.impl.ServerString.toTargets(ServerString.java:155)
    at org.netbeans.modules.j2ee.deployment.impl.TargetServer.init(TargetServer.java:146)
    at org.netbeans.modules.j2ee.deployment.impl.TargetServer.undeploy(TargetServer.java:771)
    at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.undeploy(Deployment.java:337)
    at org.netbeans.modules.j2ee.ant.Undeploy.execute(Undeploy.java:92)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at jdk.internal.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    at org.apache.tools.ant.Task.perform(Task.java:350)
    at org.apache.tools.ant.Target.execute(Target.java:449)
    at org.apache.tools.ant.Target.performTasks(Target.java:470)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:261)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:574)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:128)
BUILD FAILED (total time: 0 seconds)

我的环境是:

如何修复?

我决定 post 这个问题,因为我花了整个上午才找到解决方案...特别是因为出现 java.lang.NoClassDefFoundError: Could not initialize class weblogic.jndi.Environment 的最常见原因是 weblogic.jarwlfullclient.jar 没有被 IDEWebAppWL.

中的任何一个正确定位

要解决这个问题 运行 你的项目使用 NetBeans 8.2,这似乎只是 NB10 的一个错误。

此外,甚至不要尝试 运行在 NB11NB12NB12.1NB12.2 上使用它。目前,Java EE plugin for those versions is discontinued 所以您甚至无法将 WL 添加到您的服务器列表。

它在 NB10 中崩溃的原因是他们开始从中删除 Java 8 个供应商功能,甚至不可能将 WL 添加到 NB11 > 的原因是因为 Oracle 删除了Java...NB integration is not under Apache Licence so they just aren't giving support to it now (is an issue that they refused to fix). However, with a bit of risk, it .

后续版本的 JDK8 功能

对于 Eclipse IDE,我的解决方案是在客户端上从 JDK11 切换到 JDK8。