Incompatibilidade de Frameworks?

Boa noite!

Estou desenvolvendo um projeto web utilizando JSF + PrimeFaces + Hibernate + Tomcat, e estou tendo muitas dificuldades com os erros apresentados durante a execução do projeto.
Acredito que seja algum problema de incompatibilidade entre os .jars dos frameworks, já que peguei praticamente todos eles de um projeto exemplo desenvolvido durante uma aula, mas pesquisei bastante e ainda não consegui identificar o que poderia ser.

O projeto está apresentando erro quando chamo a classe responsável pela conexão com o banco.

Quando executo o projeto é apresentado no navegador um formulário de login bem simples, e ao clicar no botão para logar são apresentados os erros.

Os erros referem-se à uma classe do jboss, porém não estou utilizando jboss, e não consigo identificar o que exatamente está chamando essa classe.


Mai 02, 2013 3:41:49 AM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
Informações: Running on PrimeFaces 3.2
[http-bio-8080-exec-20] INFO Conexao.HibernateFactory - abrindo nova sessao
Mai 02, 2013 3:42:21 AM javax.faces.event.MethodExpressionActionListener processAction
Grave: 'java.lang.NoClassDefFoundError' recebido ao invocar escuta de ação '#{usuarioBean.verificaUsuario}' para o componente 'login'
Mai 02, 2013 3:42:21 AM javax.faces.event.MethodExpressionActionListener processAction
Grave: java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:176)

.....

Mai 02, 2013 3:42:21 AM com.sun.faces.context.ExceptionHandlerImpl log
Grave: JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de INVOKE_APPLICATION 5: UIComponent-ClientId=formLogin:login, Message=/index.xhtml @31,116 actionListener="#{usuarioBean.verificaUsuario}": java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
Mai 02, 2013 3:42:21 AM com.sun.faces.context.ExceptionHandlerImpl log
Grave: /index.xhtml @31,116 actionListener="#{usuarioBean.verificaUsuario}": java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
javax.faces.event.AbortProcessingException: /index.xhtml @31,116 actionListener="#{usuarioBean.verificaUsuario}": java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182)

Segue a minha classe “HibernateFactory”:

package Conexao;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.slf4j.*;

public class HibernateFactory {

	private static SessionFactory sessionFactory;
	private static ServiceRegistry serviceRegistry;
	private static Logger logger = LoggerFactory.getLogger(HibernateFactory.class);

	public static SessionFactory configureSessionFactory()
			throws HibernateException {
		logger.info("abrindo nova sessao");
		Configuration configuration = new Configuration();
		configuration.configure("hibernate.cfg.xml");
		serviceRegistry = new ServiceRegistryBuilder().applySettings(
				configuration.getProperties()).buildServiceRegistry();
                sessionFactory = configuration.buildSessionFactory();
		return sessionFactory;
	}

}

Alguém tem alguma sugestão??

Vlw :wink:




Fala bicho…
Cara, para login sempre uso o Spring Security, que já resolve o problema de acesso a páginas de acordo com o perfil de usuário…
Segue um exemplo de xml de configuração do Spring Security

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
  xmlns:beans="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/security
           http://www.springframework.org/schema/security/spring-security-3.1.xsd">
	<!--default-target-url="/poslogin.jsp"-->
        <http auto-config='true'>

            <intercept-url pattern="/admin/**" access="ROLE_ADMINISTRADOR" />
            <intercept-url pattern="/usuario/**" access="ROLE_USUARIO" />
            <form-login login-page="/publico/login.jsf"
                    always-use-default-target="true"
                    default-target-url="/poslogin.jsp"
                    authentication-failure-url="/publico/login.jsf?login_error=1" />
            <logout/>
            <remember-me />
	</http>

	<authentication-manager>
            <authentication-provider>
                <jdbc-user-service 
                    data-source-ref="dataSource"
                    authorities-by-username-query="SELECT u.login, p.permissao 
                                                   FROM usuario as u, usuario_permissao as p
                                                   where u.acesso = p.id
                                                   AND u.login = ?"
                    users-by-username-query="SELECT login, senha, ativo 
                                             FROM usuario 
                                             WHERE login = ?" />
                
            </authentication-provider>
	</authentication-manager>
    
</beans:beans>

Abs!!!

Vlw, mas na verdade citei o login como um exemplo fácil, pois irei utilizar a classe de conexão com banco diversas vezes, e pelo que estou entendendo os erros apresentados são causado por essa classe especificamente.

Eu estou começando agora estudar java e talvez não esteja interpretando corretamente as mensagens, então se ver que não estou sendo coerente, por favor me deem um toque ae…

Verifiquei que estava chamando uma classe do org.jboss.logging porque a classe ServiceRegistryBuild do org.hibernate.service a utiliza.

Agora o problema é que então utilizando o org.jboss.logging é apresentada a seguinte mensagem de erro:

java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;

Porém consultando essa classe org.jboss.logging.Logger, verifiquei que a mesma possui o método getMessageLogger:

    public static <T extends Object> T getMessageLogger(Class<T> type, String string) {
     ....
    }

Então qual o problema?