По какой-то причине я не могу подключиться к своей базе данных, поэтому я получаю сообщение об ошибке: java.lang.ClassNotFoundException: java:comp/env/jdbc/oracleInstance
, и у меня есть класс DataUtility
, где я подключаюсь без проблем.Но в моем методе ниже, начиная с Class.forName
, начинается ошибка.Может ли кто-нибудь помочь мне решить эту проблему.спасибо!
Вот мой код:
public void exportExcel() throws SQLException, Exception {
Class.forName("java:comp/env/jdbc/oracleInstance");
Connection connect = DriverManager.getConnection(
"java:comp/env/jdbc/oracleInstance",
"root",
"root"
);
Statement statement = connect.createStatement();
ResultSet resultSet = statement.executeQuery("select * from myBean.va_v_vPay");
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet spreadsheet = workbook.createSheet("test db");
XSSFRow row = spreadsheet.createRow(1);
XSSFCell cell;
cell = row.createCell(1);
cell.setCellValue("CLASS");
cell = row.createCell(2);
cell.setCellValue("GRADE");
int i = 2;
while (resultSet.next()) {
row = spreadsheet.createRow(i);
cell = row.createCell(1);
cell.setCellValue(resultSet.getInt("Class"));
cell = row.createCell(2);
cell.setCellValue(resultSet.getString("Grade"));
i++;
}
FileOutputStream out = new FileOutputStream(new File("all_file.xls"));
workbook.write(out);
out.close();
System.out.println("all_file.xls written successfully");
}
DataUtility:
@ManagedBean(name = "dataUtility")
@ApplicationScoped
public final class DataUtility {
private final JdbcTemplate jdbcTemplate;
public DataUtility() throws NamingException {
this.jdbcTemplate = new JdbcTemplate(DataUtility.getDataSource());
}
private static DataSource getDataSource() throws NamingException {
Context ctx = new InitialContext();
DataSource ds;
try {
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/oracleInstance");
} catch (Exception e) {
System.out.println("FATAL ERROR: " + e.toString());
throw new NamingException(e.toString());
}
return ds;
}
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
}