Здравствуйте.
Решил Java сервлеты переключить с индивидуальных JDBC подключений на именованое JNDI подключение, для этого в META-INF создал context.xml файл и в нем прописал коннекцию
<Context reloadable="true">
<Resource name="jdbc/Oracle" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=oracledb)))"
username="dbuser"
password="db123"
maxActive="150"
maxIdle="120"
maxWait="-1"/>
</Context>
далее создал метод в классе
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.annotation.Resource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class ManagementSystem {
public static Connection getConnection() throws SQLException, ClassNotFoundException, NamingException
{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:/comp/env/jdbc/Oracle");
Connection connection = ds.getConnection();
System.out.println(connection);
return connection;
}
}
при обращении к методу получаю ошибку
Exception in thread "main" 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
Как решить эту проблему?