13

尝试执行我的 jar 文件时出现异常:

javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory 
[Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]

我想这是类路径上某种缺失的库。谁能告诉我缺少哪个 jar 文件?我在任何地方都找不到类 weblogic.jndi.WLInitialContextFactory ...

谢谢!

PS:我已经包含了 weblogic 10.0 jar。

4

10 回答 10

14

检查您的 server/lib/ 文件夹以找到 wliclient.jar。

使用 Weblogic 12.1.3,您可以在此处找到它:
${INSTALL_DIR}/inventory/wlserver/server/lib/wlclient.jar

于 2009-04-28T09:46:42.707 回答
6

步骤1:

E:\weblogic81\user_projects\domains\mydomain。然后输入Setenv命令。如下

E:\weblogic81\user_projects\domains\mydomain>setenv 

第2步:

Weblogic.jar您的客户端应用程序需要该文件。它可能包含在以下路径E:\weblogic81\weblogic81\server\lib\weblogic.jar中。因此设置此文件夹的类路径或将此 weblogic.jar 文件复制到您的应用程序文件夹中,以便您的应用程序首先可以使用 weblogic.jar 文件。

E:\weblogic81\user_projects\domains\mydomain>set CLASSPATH=%CLASSPATH%;E:\weblogic81\weblogic81\server\lib;.

第 3 步:

如上所示,在命令提示符中转到域文件夹并设置类路径。为了不打扰其他类路径,请将类路径设置为:

set CLASSPATH=%CLASSPATH%;E:\weblogic81\weblogic81\server\lib;.

这里 ( .) 点表示将类路径设置为当前目录。

第4步:

类路径设置后运行命令STARTWEBLOGIC如下:

E:\weblogic81\user_projects\domains\mydomain>STARTWEBLOGIC 

第 5 步:

不要登录到 weblogic 服务器。如果您已经登录,只需注销并在 myeclipse 或其他一些 IDE 中编写以下代码。

第 6 步:

package directory.service;
import java.util.*;
import weblogic.jndi.*;
import java.io.FileInputStream;
import javax.naming.*;
public class GetInitContext {

    /**
     * @param args
     */

    public static void main(String[] args) {


        try{
        weblogic.jndi.Environment env=new weblogic.jndi.Environment();
    weblogic.jndi.Environment environment = new weblogic.jndi.Environment();
        environment.setInitialContextFactory(
          weblogic.jndi.Environment.DEFAULT_INITIAL_CONTEXT_FACTORY);
        env.setProviderUrl("t3://localhost:7001");
        env.setSecurityPrincipal("agni");
        env.setSecurityCredentials("agnidevam");
        Context context=env.getInitialContext();
        System.out.println("got the initial context for weblogic server---> "+context);
        context.createSubcontext("sone");
        context.bind("agni one",new Integer(10));
        context.createSubcontext("sone/sctwo");
        context.bind("agni two",new Integer(20));
        context.createSubcontext("sone/sctwo/scthree");
        context.bind("agni three",new Integer(30));
        System.out.println("subcontex object created please check in admin server for more details");

        }
        catch(Exception e){
            System.out.println("file inputstream exception  ---> "+e);
        }
    }

}

第 7 步:

执行上面的代码,登录weblogic,右键myserver>view jndi tree>找到绑定​​的对象信息。

于 2011-07-03T14:05:45.893 回答
2

Check the following tag in your build.xml

property name="WLS_HOME" value="${env.WLS_HOME}"

where WLS_HOME=c:\weblogic\wls\wlserver if running on windows i kept trying to run a simple hello world program and it kept throwing

*run:

 [echo] Executing client class  
 [java] javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]*

once i changed the above mentioned tag it in the build.xml it worked fine

于 2011-09-08T15:00:46.170 回答
2

看起来您正在 WLS 之外进行 JNDI 查找。

您需要使用 wlfulclient.jar,或者如果您的机器安装了 WLS,则添加到您的类路径项目:WL_HOME/server/lib/weblogic.jar

于 2014-03-03T09:07:04.673 回答
2

我遇到了同样的问题,现在已经解决了:)

修复方法是,转到 WebLogic 服务器并导航到 /Oracle/Middleware/wlserver_10.3/server/lib/ 并执行以下命令。

命令:java -jar wljarbuilder.jar -profile wlfullclient5

上面的命令创建了一个 jar 文件,其中包含 WebLogic 服务器 /lib 文件夹中的所有 jar 文件,并将其放置在您的客户端 java 代码构建路径 Eclipse 和 craetes 可运行 JAR 文件中,并将这个 wlfullclient5.jar 文件也放置在 server/lib 文件夹中。

希望这可以帮助!如果您有任何问题,请告诉我。

于 2016-02-26T22:36:45.450 回答
2

添加 wlserver/server/lib/weblogic.jar 就足够了。我测试它。

于 2016-05-05T07:29:50.450 回答
0

in version 12c it is located in weblogic-classes.jar in your lib directory:

C:\wls1213\wlserver\server\lib

于 2015-04-28T15:53:57.243 回答
0

它被打包在你的 server/lib 下的 weblogic.jar 中。

于 2010-08-07T00:29:30.017 回答
0

我遇到了此处所述的问题,并且通过修复WL_HOME环境变量设法解决了问题。

在我的情况下,wlserver_10.3文件夹被移动到另一个驱动器(从DE)并且进行磁盘“迁移”的人忘记将 WL_HOME 值更改为PATH\TO\Oracle\Middleware\wlserver_10.3\common\bin

通过修复wlserver_10.3我能够JAR's在 WebLogic上部署的路径

于 2020-07-29T02:38:03.233 回答
0

对于WLS 12.2,其中 WL_HOME 是 WebLogic 安装的 BEA 主目录

(默认WL_HOMEMiddleware\Oracle_Home\wlserver

%WL_HOME%\server\lib\wlclient.jar
%WL_HOME%\server\lib\wls-api.jar 
%WL_HOME%\server\lib\wls-api-part.jar 
%WL_HOME%\server\lib\wlthint3client.jar 

所有这些库都包含:jar: weblogic\jndi\WLInitialContextFactory.class

请参阅 WLS 文档:https ://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/wlprg/overview.html#GUID-FC14CC53-DE49-456F-B54C-D73CC6DBF818

于 2020-03-17T15:56:24.213 回答