Jar weblogic.jndi.WLInitialContextFactory类在哪里?

Jar weblogic.jndi.WLInitialContextFactory类在哪里?,jar,weblogic,jndi,Jar,Weblogic,Jndi,尝试执行我的jar文件时,我遇到一个异常: javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory] 我猜这是类路径上缺少的某种库。 谁能告诉我哪个jar文件丢失

尝试执行我的jar文件时,我遇到一个异常:

javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory 
[Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]
我猜这是类路径上缺少的某种库。 谁能告诉我哪个jar文件丢失了?我在任何地方都找不到类weblogic.jndi.WLInitialContextFactory

谢谢


注意:我已经包含了weblogic 10.0 jar。

检查您的服务器/lib/文件夹以找到wliclient.jar

使用Weblogic 12.1.3,您可以在此处找到它:

${INSTALL_DIR}/inventory/wlserver/server/lib/wlclient.jar

它打包在您的服务器/lib下的weblogic.jar中。

步骤1:

转到
E:\weblogic81\user\u 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:

类路径设置后,按如下方式运行命令startweblog:

E:\weblogic81\user_projects\domains\mydomain>STARTWEBLOGIC 
步骤5:

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

步骤6:

packagedirectory.service;
导入java.util.*;
导入weblogic.jndi.*;
导入java.io.FileInputStream;
导入javax.naming.*;
公共类GetInitContext{
/**
*@param args
*/
公共静态void main(字符串[]args){
试一试{
weblogic.jndi.Environment env=新的weblogic.jndi.Environment();
weblogic.jndi.Environment=new weblogic.jndi.Environment();
environment.setInitialContextFactory(
weblogic.jndi.Environment.DEFAULT\u INITIAL\u CONTEXT\u FACTORY);
env.setProviderUrl(“t3://localhost:7001”);
环境设置安全原则(“agni”);
环境设置安全保密(“agnidevam”);
Context=env.getInitialContext();
System.out.println(“获取weblogic server的初始上下文-->”+上下文);
上下文。创建子上下文(“sone”);
bind(“agnione”,新的整数(10));
context.createSubcontext(“sone/sctwo”);
bind(“agnitwo”,新的整数(20));
context.createSubcontext(“sone/sctwo/scthree”);
bind(“agni-three”,新的整数(30));
System.out.println(“创建的subcontex对象请签入管理服务器以获取更多详细信息”);
}
捕获(例外e){
System.out.println(“文件输入流异常-->”+e);
}
}
}
步骤7:


执行上述代码并登录到weblogic,右键单击查看jndi树。找到绑定对象信息。

检查build.xml中的以下标记

property name=“WLS_HOME”value=“${env.WLS_HOME}”

其中WLS\U HOME=c:\weblogic\WLS\wlserver(如果在windows上运行) 我一直在试着运行一个简单的hello world程序,它不断抛出

*运行:


一旦我在build.xml中更改了上面提到的标记,它就工作得很好了

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


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

在版本12c中,它位于lib目录中的weblogic-classes.jar中:


C:\wls1213\wlserver\server\lib

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

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

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

上面的命令创建了一个包含所有jar的WebLogic server/lib文件夹的jar文件,并将其放在您的客户机java代码构建路径Eclipse和craetes runnable jar文件中,同时将这个wlfullclient5.jar文件放在server/lib文件夹中


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

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

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

(定义为
WLU HOME
Middleware\Oracle\U HOME\wlserver

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


请参阅WLS文档。

我已经面对了此处所述的问题,并且通过修复
WL\U HOME
环境变量成功地解决了这个问题

在我的例子中,
wlserver\u 10.3
文件夹被移动到另一个驱动器(从
D
E
),而进行磁盘“迁移”的人忘记了将
PATH\to\Oracle\Middleware\wlserver\u 10.3\common\bin的wlu HOME值更改为

通过修复
wlserver\u10.3
路径,我能够在WebLogic上部署
JAR的

 [echo] Executing client class  
 [java] javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]*
%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