Aplikacja to JSF w której mie mam za dużego doświadczenia. Chce aby po przyciśnięciu przycisku utworzona zostala sesja hibernata.
Mam taki błąd: javax.faces.FacesException: #{userBean.login()}: java.lang.NoClassDefFoundError: Could not initialize class util.HibernateUtil
Nie wiem co jest powodem:
public class HibernateUtil {
static boolean wire = false, extrusion = true;
private static final SessionFactory sessionFactory;
static {
try {
Settings s = new Settings();
String databaseURL = null;
databaseURL = "jdbc:sqlserver://"+s.server+";databaseName="+s.database+";instanceName=MSSQLSERVER"+";integratedSecurity=true";
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
cfg.setProperty("hibernate.connection.url", databaseURL);
com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem();
String login = NTSystem.getName();
cfg.addAnnotatedClass(Pracownik.class);
StandardServiceRegistryBuilder sb = new StandardServiceRegistryBuilder();
sb.applySettings(cfg.getProperties());
StandardServiceRegistry standardServiceRegistry = sb.build();
sessionFactory = cfg.buildSessionFactory(standardServiceRegistry);
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
JOptionPane.showMessageDialog(null, "Initial SessionFactory creation failed." + ex, "Error:", JOptionPane.ERROR_MESSAGE);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Wywołanie:
@ManagedBean
public class UserBean {
private User user = new User();
public boolean login() throws IOException{
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx=null;
List resultList = null;
try{
tx=session.beginTransaction();
Query q = session.createQuery("from pracownik");
resultList = q.list();
tx.commit();
}
catch (Exception e) {if (tx!=null) tx.rollback();e.printStackTrace();}
finally {session.close();}
return resultList;
}
}
<h:commandButton value="Logowanie Produkcja" action="#{userBean.login()}"/>