0

こんにちは、tomee.xml ファイルと web.xml ファイルでデータ ソースを構成します。これは、プロジェクトを実行するときに正常に動作しますが、そこで使用したときに使用する必要があるテスト ケースを実装すると、例外 javax.naming.NoInitialContextException が発生します。 : 環境またはシステム プロパティで、またはアプレット パラメータとして、またはアプリケーション リソース ファイルでクラス名を指定する必要があります: java.naming.factory.initial

これは私の tomee.xml ファイルです

     <?xml version="1.0" encoding="UTF-8"?>
     <tomee>
       <Resource id="jdbc/mydb" type="DataSource">
             JdbcDriver com.mysql.jdbc.Driver    
             JdbcUrl jdbc:mysql://localhost:3306/test
             UserName root
             Password root    
             JtaManaged false   
             InitialSize 50 
             MaxActive 100
             MaxIdle 3
       </Resource>
     </tomee>

このコードはサーブレットで正常に動作していますが、Java クラスで書いている場合、例外が発生します。これは、アクセスするための私の Java クラスです。

     Context initContext = new InitialContext();
     Context envContext  = (Context)initContext.lookup("java:/comp/env");
     DataSource ds = (DataSource)envContext.lookup("jdbc/mydb");
     con = ds.getConnection();
4

1 に答える 1

1

サーブレット環境では、サーブレット エンジンによって既に設定されたコンテキストがあります。そのような環境の外で実行する場合、コンテキストを自分でセットアップする必要があります。

ここで例を見てください。

于 2013-08-07T13:01:09.423 に答える