私の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を含んでいます。
Server/lib /フォルダーをチェックして、wliclient.jarを見つけます。
Weblogic 12.1.3では、次の場所にあります。${INSTALL_DIR}/inventory/wlserver/server/lib/wlclient.jar
ステップ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>
を右クリックして、バインドされたオブジェクトの情報を見つけます。
Build.xmlで次のタグを確認します
プロパティ名= "WLS_HOME"値= "$ {env.WLS_HOME}"
wLS_HOME = c:\ weblogic\wls\wlserver Windowsで実行している場合、単純な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で変更したら問題なく動作しました
私は同じ問題に直面し、それは今修正されました:)
修正方法は、WebLogicサーバーに移動して/Oracle/Middleware/wlserver_10.3/server/lib/に移動し、以下のコマンドを実行することです。
コマンド:Java -jar wljarbuilder.jar -profile wlfullclient5
上記のコマンドは、すべてのjar内のWebLogicサーバーの/ libフォルダーを含むjarファイルを作成し、クライアントに配置しますJavaコードビルドパスEclipseおよび実行可能なJARファイルを作成し、このwlfullclient5.jarファイルをserver/libフォルダーも同様です。
お役に立てれば!問題が発生した場合はお知らせください。
wLSの外部でJNDIルックアップを実行しているようです。
Wlfulclient.jarを使用する必要があります。または、マシンにWLSがインストールされている場合は、クラスパスプロジェクトに追加します。WL_HOME/ server/lib/weblogic.jar
Wlserver/server/lib/weblogic.jarを追加するだけで十分です。私はそれをテストします。
バージョン12cでは、libディレクトリのweblogic-classes.jarにあります。
C:\ wls1213\wlserver\server\lib
これは、server/libの下のweblogic.jar内にパッケージ化されています。