Hallo,
ich habe folgendes Problem. Wenn ich meine Anwendung löschen will bleibt immer eine Jar Datei (ojdbc14.jar)auf dem Server liegen. Diese läst sich erst durch herunterfahren des Servers löschen. Daraus schließe ich das eine Datenbankverbindung nicht richtig abgebaut wurde. Ich poste hier mal meinen Code. Ich hoffe jemand kann mir helfen.
Tomcat: 5.5
Hibernat 3.1
Oracle: 10g
Servlet
Code:
package model;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import util.HibernateUtil;
public class MTSTableView extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// Begin unit of work
HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
PrintWriter out = response.getWriter();
out.println("<html><head><title>Übersicht </title></head><body>");
listEvents(out);
//Write HTML footer
out.println("</body></html>");
out.flush();
out.close();
// End unit of work
HibernateUtil.getSessionFactory()
.getCurrentSession().getTransaction().commit();
HibernateUtil.getSessionFactory().close();
} catch (Exception ex) {
HibernateUtil.getSessionFactory()
.getCurrentSession().getTransaction().rollback();
throw new ServletException(ex);
}
}
private void listEvents(PrintWriter out) {
List result = HibernateUtil.getSessionFactory()
.getCurrentSession().createCriteria(MtsTabelle.class).list();
if (result.size() > 0) {
out.println("<h2>Tabellen</h2>");
out.println("<table border='1'>");
out.println("<tr>");
out.println("<th>Objekt ID</th>");
out.println("<th>SchemaName</th>");
out.println("</tr>");
for (Iterator it = result.iterator(); it.hasNext();) {
MtsTabelle mts = (MtsTabelle) it.next();
out.println("<tr>");
out.println("<td>" + mts.getId()+ "</td>");
out.println("<td>" + mts.getSchemaName() + "</td>");
out.println("<td>" + mts.getFachbereich()+ "</td>");
out.println("</tr>");
}
out.println("</table>");
}
}
}
HibernateUtil
Code:
package util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}