0
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at com.connect.DBHelper.getConnection(DBHelper.java:15)
    at com.connect.DemoConnect.main(DemoConnect.java:13)
java.lang.NullPointerException

例外は何ですか?dataSource を使用しようとしています。これは私の context.xml ファイルです。xml ファイルを meta-inf フォルダーに追加し、ojdbc14.jar を tomcat lib フォルダーに追加しました。

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource name="jdbc/mydatasource" 
              auth="Container"
              type="javax.sql.DataSource" 
              username="YOUR_USERNAME" 
              password="YOUR_PASSWORD"
              driverClassName="oracle.jdbc.driver.OracleDriver"
              url="jdbc:oracle:thin:[oracletrg/oracle]@10.180.168.112[:1521]/orcl?autoReconnect=true"
              maxActive="10" 
              maxIdle="4"/>
</Context>
4

1 に答える 1

0

アプリケーションサーバーでJNDIが定義されており、このエラーが発生することを確認しています。アプリケーションサーバーにjndiがあることを確認してください。

この例外は、初期コンテキスト実装を作成できない場合にスローされます。初期コンテキスト実装の選択方法のポリシーは、InitialContextクラスのドキュメントに記載されています。

この例外は、InitialContextが構築されているときだけでなく、InitialContextとの対話中にスローされる可能性があります。たとえば、初期コンテキストの実装は、実際のメソッドが呼び出された場合にのみ、コンテキストを遅延取得する可能性があります。アプリケーションは、初期コンテキストの存在がいつ決定されるかに依存してはなりません。

http://download.oracle.com/javase/6/docs/api/javax/naming/InitialContext.html

于 2013-02-26T10:34:35.500 に答える