Я новичок в настройке ресурсов JNDI и настройке ресурсов JNDI в Tomcat.
Я унаследовал приложение сервлета.Он работает на тестовом сервере через WebLogic.Приложение сервлета обращается к своему ресурсу базы данных следующим образом:
ctx = new InitialContext();
ds = (javax.sql.DataSource)ctx.lookup("myDataBaseName");
conn = ds.getConnection();
Когда я пробовал это в тестовой JSP, это не работает.Я получаю
javax.naming.NameNotFoundException: Name myDataBaseName is not bound in this Context
Однако я смог заставить тестовую JSP работать, если я изменил тестовый код JSP таким образом:
ctx = new InitialContext();
Context envContext = (Context)ctx.lookup("java:/comp/env");
ds = (DataSource)envContext.lookup("myDataBaseName");
conn = ds.getConnection();
У меня есть эта запись в TOMCAT_HOME / conf / context.html (я просто использую его в качестве среды разработки на своем компьютере)
<Resource name="myDataBaseName"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@blahblahblah:1521:database3"
username="joeuser"
password="password"
maxActive="20"
maxIdle="30"
maxWait="-1"/>
</Context>
И у меня есть это в моем TOMCAT_HOME / conf / web.xml:
<resource-ref>
<res-ref-name>myDataBaseName</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Я прочиталоколо 10 страниц stackoverflow по связанным проблемам, но я недостаточно знаком с настройкой ресурсов JNDI, чтобы абстрагировать эти решения моей проблемы.
Как я могу изменить способ настройки Tomcat 7, чтобы разрешить существующий сервлетприложение для доступа к своей базе данных как «myDatabaseName»?У меня нет возможности изменить код в приложении сервлета или изменить способ настройки WebLogic на тестовом сервере.
Мне нужно изменить способ установки моей копии Tomcat 7 на моем компьютере (для среды разработки), чтобы приложение сервлета могло обращаться к своей базе данных в стиле первого куска цитируемогокод в верхней части этого поста.