Java SE 8のLinux CentOS 7でTomcat(8.5.9)を初めて使用しました。簡単な間違いをしている必要があります。これは、tomcat用のJDBC接続プールを構成する方法のテキストブックの例です。私が間違っている可能性が何WebアプリケーションをTomcatに移植しています:javax.naming.NameNotFoundException:
javax.naming.NameNotFoundException: Name [jdbc/pool1] is not bound in this Context. Unable to find [jdbc]
任意のアイデア:
私はこのエラーがありますか? Tomcatの statesIt is NOT recommended to place <Context> elements directly in the server.xml file.
このように、私のセットアップ:
$ CATALINA_HOME/webappsに/ myappの/ META-INF/context.xmlに以下のとおりである。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/pool1"
auth="Container"
type="javax.sql.DataSource"
username="xx"
password="xx"
driverClassName="oracle.jdbc.OracleDriver"
url="xx"
maxTotal="256"
maxIdle="8"
initialSize="4"
removeAbandonedTimeout="7200"
removeAbandonedOnBorrow="true"/>
<Resource name="jdbc/pool2"
auth="Container"
type="javax.sql.DataSource"
username="xx"
password="xx"
driverClassName="oracle.jdbc.OracleDriver"
url="xx"
maxTotal="256"
maxIdle="8"
initialSize="4"
removeAbandonedTimeout="7200"
removeAbandonedOnBorrow="true"/>
<ResourceLink name="jdbc/pool1"
global="jdbc/pool1"
type="javax.sql.DataSource"/>
<ResourceLink name="jdbc/pool2"
global="jdbc/pool2"
type="javax.sql.DataSource"/>
</Context>
$ CATALINA_HOME/webappsに/ myappの/ WEB-INF /ウェブ。次のようにXMLがある:
...
<resource-ref>
<description>xxx</description>
<res-ref-name>jdbc/pool1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>xxx</description>
<res-ref-name>jdbc/pool1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
...
例外を引き起こすコード:
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("jdbc/pool1");
conn = ds.getConnection();
私は$ CATALINA_HOME/conf/server.xmlをまったく変更していません。私は間違って何かを構成しましたか、別のファイルをどこかに設定していませんか?
UPDATE 1
私は、Tomcatを起動/停止、$ CATALINA_HOME/conf/server.xmlファイルにGlobalNamingResourcesタグに上記ResourceLinksを追加しようとしたが、私は同じエラーを得ました。
UPDATE 2
Iは、次いで、Tomcatを開始/停止、server.xmlファイル(GlobalNamingResourcesタグ)にも上記のcontext.xmlからリソースタグを追加し、同じエラーを得ました。また
Context initCtx = new InitialContext();
Context context = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) context.lookup("jdbc/pool1");
conn = ds.getConnection();
、ResourceLinksはserver.xmlであってはならない。私は道のJavaを変更することにより、Andreasの専門家の助け(!ありがとう)と協力し、すべてがプールを呼び出しました
UPDATE 3
(彼らは単にtomcatログに警告を生成します)。
例外をスローするコードはありますか? – EJP
@EJP確かに、Update 1のすぐ上に例外をスローするコードを追加しました。 – user46688