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,/ ;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: http://127.0.0.1:8888/hibernategwt/hosted.html?hibernategwt
X-GWT-Permutation: HostedMode
X-GWT-Module-Base: http://127.0.0.1:8888/hibernategwt/
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