Já tentei de tudo, já vasculhei a internet a procura da solução, mas nada ainda. Alguém poderia me ajudar?
com.google.gwt.user.server.rpc.UnexpectedException: Service method ‘public abstract java.util.List amaral.hibernategwt.client.GreetingService.getPersons()’ threw an unexpected exception: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
Minha classe Person:
package amaral.hibernategwt.shared ;
import java.io.* ;
import java.util.* ;
import javax.persistence.* ;
@Entity
@Table ( name = "public.person" )
public class Person
implements Serializable {
private static final long serialVersionUID = 8797358836729244169L ;
public Person () {
super ();
}
public Person ( int id , String nome , Date nascimento ) {
super ();
this . id = id ;
this . nome = nome ;
this . nascimento = nascimento ;
}
@Id
@Column ( name = "id" , nullable = false )
private int id ;
@Column ( name = "nome" , nullable = false )
private String nome ;
@Column ( name = "nascimento" , nullable = false )
private Date nascimento ;
public final int getId () {
return id ;
}
...
getter e setters
...
}
Minha classe HibernateUtil:
package amaral.hibernategwt.server ;
import org.hibernate.SessionFactory ;
import org.hibernate.cfg.* ;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory ();
private static SessionFactory buildSessionFactory () {
try {
return new Configuration (). configure (). buildSessionFactory ();
} catch ( Exception e ) {
System . out . println ( "SessionFactory creation failed" + e );
throw new ExceptionInInitializerError ( e );
}
}
public static SessionFactory getSessionFactory () {
return sessionFactory ;
}
}
Minha classe PersonService:
package amaral.hibernategwt.server ;
import java.util.* ;
import org.hibernate.* ;
import amaral.hibernategwt.shared.* ;
import amaral.hibernategwt.util.* ;
public class PersonService {
public static List < Person > getPersons () {
Session session = HibernateUtil . getSessionFactory (). getCurrentSession ();
Transaction trans = session . getTransaction ();
trans . begin ();
List < Person > persons = session . createCriteria ( Person . class ). list ();
trans . commit ();
return persons ;
}
public static void addPessoa ( Person person ) {
Session session = HibernateUtil . getSessionFactory (). getCurrentSession ();
Transaction trans = session . getTransaction ();
trans . begin ();
session . save ( person );
trans . commit ();
}
}
Minha classe testePerson:
package amaral.hibernategwt.client ;
import java.util.* ;
import amaral.hibernategwt.server.* ;
import amaral.hibernategwt.shared.* ;
public class testePerson {
public static void main ( String [] args ) {
//*/
List < Person > persons = PersonService . getPersons ();
for ( Person person : persons ) {
System . out . println ( person );
}
//*/
//addPessoa(new Person(3, "Teste", new Date()));
}
}
Na minha classe de serviço remoto o método getPersons que não funciona e gera o erro:
public List < Person > getPersons () {
List < Person > persons = PersonService .getPersons () ;
// List < Person > persons = new ArrayList < Person > () ;
// persons .add ( new Person ( 4 , "Fulano" , new Date ())) ;
return persons ;
}
Minha classe hibernate.gwt.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name= "testePerson" >
<property name= "dialect" > org.hibernate.dialect.PostgreSQLDialect</property>
<property name= "connection.username" > *****</property>
<property name= "connection.password" > *****</property>
<property name= "connection.url" > jdbc:postgresql://****</property>
<property name= "connection.driver_class" > org.postgresql.Driver</property>
<property name= "show_sql" > false</property>
<property name= "query.substitutions" > yes 'Y', no 'N'</property>
<property name= "transaction.factory_class" > org.hibernate.transaction.JDBCTransactionFactory</property>
<property name= "cache.use_query_cache" > false</property>
<property name= "hibernate.transaction.factory_class" > org.hibernate.transaction.JDBCTransactionFactory</property>
<property name= "hibernate.current_session_context_class" > thread</property>
<property name= "generateDdl" > true</property>
<mapping class= "amaral.hibernategwt.shared.Person" />
</session-factory>
</hibernate-configuration>
As libs que estou usando são as seguintes:
434K 2011-05-27 14:28 antlr-2.7.6.jar
547K 2011-05-27 14:28 commons-collections-3.1.jar
52K 2009-03-27 17:33 commons-logging-1.1.jar
307K 2011-05-27 14:28 dom4j-1.6.1.jar
4,0M 2011-05-27 15:14 hibernate3.jar
99K 2011-05-27 14:28 hibernate-jpa-2.0-api-1.0.0.Final.jar
619K 2011-05-27 14:28 javassist-3.12.0.GA.jar
11K 2011-05-27 14:28 jta-1.1.jar
334K 2009-03-27 17:33 log4j-1.2.14.jar
465K 2011-05-27 12:22 postgresql-8.3-605.jdbc4.jar
25K 2011-01-07 17:21 slf4j-api-1.6.0.jar
9,6K 2011-01-07 17:21 slf4j-log4j12-1.6.0.jar
O erro exibido no console do eclipse é o seguinte:
Picked up JAVA_TOOL_OPTIONS : - Dfile . encoding = UTF - 8
log4j : WARN No appenders could be found for logger ( org . apache . jasper . compiler . JspRuntimeContext ).
log4j : WARN Please initialize the log4j system properly .
[ WARN ] Server class ‘ org . hibernate . Session ’ could not be found in the web app , but was found on the system classpath
[ WARN ] Adding classpath entry ‘ file : / home / pg / projetos / HibernateGWT / lib / hibernate3 . jar ’ to the web app classpath for this session
For additional info see : file : / opt / eclipse_3 .5.2 _x64 / plugins / com . google . gwt . eclipse . sdkbundle .2.0.4 _2 .0.4 . v201006301254 / gwt - 2.0.4 / doc / helpInfo / webAppClassPath . html
[ WARN ] Server class ‘ org . dom4j . DocumentException ’ could not be found in the web app , but was found on the system classpath
[ WARN ] Adding classpath entry ‘ file : / home / pg / projetos / HibernateGWT / lib / dom4j - 1.6.1 . jar ’ to the web app classpath for this session
For additional info see : file : / opt / eclipse_3 .5.2 _x64 / plugins / com . google . gwt . eclipse . sdkbundle .2.0.4 _2 .0.4 . v201006301254 / gwt - 2.0.4 / doc / helpInfo / webAppClassPath . html
Starting Jetty on port 8888
[ WARN ] Exception while dispatching incoming RPC call
com . google . gwt . user . server . rpc . UnexpectedException : Service method ‘ public abstract java . util . List amaral . hibernategwt . client . GreetingService . getPersons () ’ threw an unexpected exception : java . lang . NoClassDefFoundError : org / slf4j / LoggerFactory
at com . google . gwt . user . server . rpc . RPC . encodeResponseForFailure ( RPC . java : 378 )
at com . google . gwt . user . server . rpc . RPC . invokeAndEncodeResponse ( RPC . java : 581 )
at com . google . gwt . user . server . rpc . RemoteServiceServlet . processCall ( RemoteServiceServlet . java : 188 )
at com . google . gwt . user . server . rpc . RemoteServiceServlet . processPost ( RemoteServiceServlet . java : 224 )
at com . google . gwt . user . server . rpc . AbstractRemoteServiceServlet . doPost ( AbstractRemoteServiceServlet . java : 62 )
at javax . servlet . http . HttpServlet . service ( HttpServlet . java : 637 )
at javax . servlet . http . HttpServlet . service ( HttpServlet . java : 717 )
at org . mortbay . jetty . servlet . ServletHolder . handle ( ServletHolder . java : 487 )
at org . mortbay . jetty . servlet . ServletHandler . handle ( ServletHandler . java : 362 )
at org . mortbay . jetty . security . SecurityHandler . handle ( SecurityHandler . java : 216 )
at org . mortbay . jetty . servlet . SessionHandler . handle ( SessionHandler . java : 181 )
at org . mortbay . jetty . handler . ContextHandler . handle ( ContextHandler . java : 729 )
at org . mortbay . jetty . webapp . WebAppContext . handle ( WebAppContext . java : 405 )
at org . mortbay . jetty . handler . HandlerWrapper . handle ( HandlerWrapper . java : 152 )
at org . mortbay . jetty . handler . RequestLogHandler . handle ( RequestLogHandler . java : 49 )
at org . mortbay . jetty . handler . HandlerWrapper . handle ( HandlerWrapper . java : 152 )
at org . mortbay . jetty . Server . handle ( Server . java : 324 )
at org . mortbay . jetty . HttpConnection . handleRequest ( HttpConnection . java : 505 )
at org . mortbay . jetty . HttpConnection $ RequestHandler . content ( HttpConnection . java : 843 )
at org . mortbay . jetty . HttpParser . parseNext ( HttpParser . java : 647 )
at org . mortbay . jetty . HttpParser . parseAvailable ( HttpParser . java : 211 )
at org . mortbay . jetty . HttpConnection . handle ( HttpConnection . java : 380 )
at org . mortbay . io . nio . SelectChannelEndPoint . run ( SelectChannelEndPoint . java : 395 )
at org . mortbay . thread . QueuedThreadPool $ PoolThread . run ( QueuedThreadPool . java : 488 )
Caused by : java . lang . NoClassDefFoundError : org / slf4j / LoggerFactory
at org . hibernate . cfg . Configuration .( Configuration . java : 197 )
at amaral . hibernategwt . util . HibernateUtil . buildSessionFactory ( HibernateUtil . java : 12 )
at amaral . hibernategwt . util . HibernateUtil .( HibernateUtil . java : 8 )
at amaral . hibernategwt . server . PersonService . getPersons ( PersonService . java : 13 )
at amaral . hibernategwt . server . GreetingServiceImpl . getPersons ( GreetingServiceImpl . java : 44 )
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . java : 39 )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 25 )
at java . lang . reflect . Method . invoke ( Method . java : 597 )
at com . google . gwt . user . server . rpc . RPC . invokeAndEncodeResponse ( RPC . java : 562 )
… 22 more
Caused by : java . lang . ClassNotFoundException : org . slf4j . LoggerFactory
at java . net . URLClassLoader $ 1. run ( URLClassLoader . java : 202 )
at java . security . AccessController . doPrivileged ( Native Method )
at java . net . URLClassLoader . findClass ( URLClassLoader . java : 190 )
at com . google . gwt . dev . shell . jetty . JettyLauncher $ WebAppContextWithReload $ WebAppClassLoaderExtension . findClass ( JettyLauncher . java : 354 )
at org . mortbay . jetty . webapp . WebAppClassLoader . loadClass ( WebAppClassLoader . java : 366 )
at org . mortbay . jetty . webapp . WebAppClassLoader . loadClass ( WebAppClassLoader . java : 337 )
… 32 more
[ ERROR ] 500 - POST / hibernategwt / greet ( 127.0.0.1 ) 57 bytes
Request headers
Host : 127.0.0.1 : 8888
User - Agent : Mozilla / 5.0 ( X11 ; Linux i686 on x86_64 ; rv : 2.0 ) Gecko / 20100101 Firefox / 4.0
Accept : text / html , application / xhtml + xml , application / xml ; q = 0.9 , < em >/</ em > ; q = 0.8
Accept - Language : en - us , en ; q = 0.5
Accept - Encoding : gzip , deflate
Accept - Charset : ISO - 8859 - 1 , utf - 8 ; q = 0.7 , * ; q = 0.7
Keep - Alive : 115
Connection : keep - alive
Referer : < a href = "http://127.0.0.1:8888/hibernategwt/hosted.html?hibernategwt" > http : // 127.0.0.1 : 8888 / hibernategwt / hosted . html ? hibernategwt </ a >
X - GWT - Permutation : HostedMode
X - GWT - Module - Base : < a href = "http://127.0.0.1:8888/hibernategwt/" > http : // 127.0.0.1 : 8888 / hibernategwt /</ a >
Content - Type : text / x - gwt - rpc ; charset = utf - 8
Content - Length : 139
Pragma : no - cache
Cache - Control : no - cache
Response headers
Content - Type : text / plain