学校のために、彼らは私たちを平易なold daoとtomcatのpostgresDBトラフに接続させています。しかし、与えられたコードは動作していません。私は今ここでかなり詰まっています。Java/TomCat BaseDao NoInitialContextException
だからここに行く。我々は(これまでのところは良い)のcontext.xmlファイルにサーバーの仕様を書き、とTomcatのlibフォルダにjarファイルドライバをインポートする必要がありました
package nl.hu.v1wac.firstapp.persistence;
import java.sql.Connection;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class BaseDao {
protected final Connection getConnection() {
Connection result = null;
try {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/PostgresDS");
result = ds.getConnection();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
return result;
}
}
:
与えconnectiondao。 context.xmlには、私のダオさんを設定した後のcontext.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/PostgresDS"
url="jdbc:postgresql://localhost:5432/worlddb"
driverClassName="org.postgresql.Driver"
auth="Container"
type="javax.sql.DataSource"
username="postgres"
password="secret" />
</Context>
のsrc /メイン/ webappの/ META-INFディレクトリに
ですが、私はメインでそれらを起動して取得しよう次のエラー:ACCとして、誰が助けることができるだろう
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/PostgresDS");
:によって引き起こさ言われ
Exception in thread "main" java.lang.RuntimeException: 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
スライド/マニュアルのordingは、すべてこれにする必要があります:/
ありがとうございます!
P.S.我々は、Tomcat 8.5を使用してEclipseのジヨンネオン
編集メインクラス
package nl.hu.v1wac.firstapp.persistence;
import java.sql.SQLException;
public class Pattern {
public static void main(String[] args) {
// TODO Auto-generated method stub
CountryDao cdao = new CountryDaoPostgreSQL();
try {
cdao.findALl();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Daoを使って特定のdao.methodを実行するEclipse Jee Neonでメインを実行した後、このエラーが発生します。このDAOは、DAOインタフェースとスーパークラスをベースに実装しています。 (私は上記コードにメインを追加しました) – Edo
あなたのコードをサーブレットに入れてTomcatにデプロイする必要があります。あなたには欠けている基本的なステップがありますが、クラスですべてのことを明確にする必要があります。 –