Убедитесь, что ваш jconn3.jar находится в пути к классу вашего приложения. Затем используйте драйвер jdbc следующим образом:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/coffeebreak";
conn = DriverManager.getConnection(url, "username", "password");
// Do your stuff
conn.close();
} catch (Exception ex) {
...
}
Ваш комментарий на мой ответ помог. Мы тоже сталкивались с такой проблемой. Наш проект использовал зрителя в JSP. Проблема возникла при детализации нашего отчета.
Когда вы открываете свой отчет в первый раз, программа просмотра генерирует идентификатор для вашего отчета. Вы должны сохранить это в сеансе, чтобы при детализации вы могли использовать этот идентификатор. Таким образом, вы указываете, что это все тот же отчет, и зритель будет использовать тот же источник данных.
Вот фрагмент кода, который должен быть понятнее текста:
// Report viewer
CrystalReportViewer crystalViewer = new CrystalReportViewer();
// Key to store the report source
String reportSourceSessionKey = "anyKeyYouWant";
Object reportSource = null;
// Get the report name passed in parameter
String reportName = request.getParameter("report");
if (reportName != null) {
// Build your report
ReportClientDocument reportClientDoc = new ReportClientDocument();
// ...
// Store de report source
reportSource = reportClientDoc.getReportSource();
session.setAttribute(reportSourceSessionKey, reportSource);
// Close the report document
reportClientDoc.close();
} else {
reportSource = session.getAttribute(reportSourceSessionKey);
}
// Set the source of the viewer
crystalViewer.setReportSource(reportSource);
....
Это решило нашу проблему с JNDI. Надеюсь, он сделает это за вас.