JSF i Hibernate błąd inicjalizacji klasy Session

0

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()}"/>

0

java.lang.NoClassDefFoundError

= brakuje ci danej biblioteki w classpath. Na pewno dodałeś wszystkie zależności? Na pewno są dostępne na serwerze na którym to odpalasz?

0
Shalom napisał(a):

java.lang.NoClassDefFoundError

= brakuje ci danej biblioteki w classpath. Na pewno dodałeś wszystkie zależności? Na pewno są dostępne na serwerze na którym to odpalasz?

Odpalam aplikacje z IDE, na komputrerze lokalnym na którym zinstalownay jest GlassFish wyczytałem w na GlassFish nie trzeba dodawać bibliotek jak to tomcat. Ale wszystkie dodałem, jak w załącnziku.

0

wyczytałem w na GlassFish nie trzeba dodawać bibliotek

Nie no, to tak nie działa. Glassfish co prawda dostarcza implementacje JEE ale Hibernate jest implementacją z JBossa/WildFly a nie z Glassfisha. Dla niego implementacją JPA jest EclipseLink :)
I nie, na tym screenie wcale nie widać co dokładnie robisz, bo zależności na poziomie kompilacji to nie to samo co zbudowanie "fat jara" razem z zależnościami.

0
Shalom napisał(a):

wyczytałem w na GlassFish nie trzeba dodawać bibliotek

Nie no, to tak nie działa. Glassfish co prawda dostarcza implementacje JEE ale Hibernate jest implementacją z JBossa/WildFly a nie z Glassfisha. Dla niego implementacją JPA jest EclipseLink :)
I nie, na tym screenie wcale nie widać co dokładnie robisz, co zależności na poziomie kompilacji to nie to samo co zbudowanie "fat jara" razem z zależnościami.

Ok, czyli musze jeszcze wiele doczytać ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1