当我尝试执行我的jar文件时,我得到一个例外:
javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory
[Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]
我想这是类路径上某种丢失的库。 谁能告诉我哪个jar文件丢失了?我无法在任何地方找到weblogic.jndi.WLInitialContextFactory类......
谢谢!
P.S。:我已经包含了weblogic 10.0 jar。
答案 0 :(得分:13)
检查您的server / lib /文件夹以查找wliclient.jar。
使用Weblogic 12.1.3,您可以在此处找到它:
${INSTALL_DIR}/inventory/wlserver/server/lib/wlclient.jar
答案 1 :(得分: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步:
如上所示,在命令提示符下转到domain文件夹并设置classpath。 为了不打扰其他类路径,将classpath设置为:
set CLASSPATH=%CLASSPATH%;E:\weblogic81\weblogic81\server\lib;.
此处(.
)dot表示到当前目录的set classpath。
第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>
,找到绑定对象信息。
答案 2 :(得分:2)
检查build.xml中的以下标记
property name =“WLS_HOME”value =“$ {env.WLS_HOME}”
如果在Windows上运行,则WLS_HOME = c:\ weblogic \ wls \ wlserver 我一直试图运行一个简单的hello world程序并且它一直在抛出
*运行:
[echo] Executing client class
[java] javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]*
一旦我在build.xml中更改了上面提到的标记,它就可以正常工作
答案 3 :(得分:1)
它看起来你正在WLS之外进行JNDI查找。
您需要使用wlfulclient.jar,或者如果您的计算机安装了WLS,则添加到您的类路径项目:WL_HOME / server / lib / weblogic.jar
答案 4 :(得分:1)
我遇到了同样的问题,现在已经修好了:)
修复是,转到WebLogic服务器并导航到/Oracle/Middleware/wlserver_10.3/server/lib/并执行以下命令。
命令:java -jar wljarbuilder.jar -profile wlfullclient5
上面的命令创建一个jar文件,其中包含WebLogic server / lib文件夹中的所有jar文件,并将其放在客户端java代码构建路径Eclipse中,并将可运行的JAR文件压缩,并将此wlfullclient5.jar文件放在server / lib文件夹中
希望这有帮助!如果您有任何问题,请告诉我。
答案 5 :(得分:1)
添加wlserver / server / lib / weblogic.jar就足够了。我测试一下。
答案 6 :(得分:0)
它打包在您的server / lib下的weblogic.jar中。
答案 7 :(得分:0)
在版本12c中,它位于lib目录中的weblogic-classes.jar中:
C:\ wls1213 \ wlserver的\服务器\ lib中
答案 8 :(得分:0)
对于WLS 12.2
,其中WL_HOME是WebLogic安装的BEA主目录
(因为默认WL_HOME
是Middleware\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
答案 9 :(得分:0)
我已经遇到了这里提到的问题,并且设法解决了WL_HOME
环境变量。
在我的情况下,wlserver_10.3
文件夹已移动到另一个驱动器(从D
到E
),执行磁盘“迁移”的那个人忘记更改{ {1}}
通过修复PATH\TO\Oracle\Middleware\wlserver_10.3\common\bin
路径,我能够在WebLogic上部署wlserver_10.3