Ошибки при запуске программы GWT / Hibernate - PullRequest
1 голос
/ 24 ноября 2011

Я пытаюсь создать простое веб-приложение, которое добавляет пользователя в базу данных.Я использую GWT-RPC с Hibernate, MySQL и Eclipse IDE, все в Windows 7. Из руководства я узнал, как сохранять / добавлять / удалять значения в базе данных с помощью Hibernate, а также как делать GWT-RPC из учебник GWT .Теперь я пытаюсь объединить их в очень простую программу.

При запуске приложения через Eclipse я получаю следующие ошибки:

[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:/D:/enterprize/MyFirstHibernateApp/lib/hibernate3.jar' to the web app classpath for this session
For additional info see: file:/D:/Programs/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.r37v201108301710/gwt-2.4.0/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:/D:/enterprize/MyFirstHibernateApp/lib/dom4j-1.6.1.jar' to the web app classpath for this session
For additional info see: file:/D:/Programs/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.r37v201108301710/gwt-2.4.0/doc/helpInfo/webAppClassPath.html
Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
Starting Jetty on port 8888
[WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String rpctest.client.RpctestService.addUser(java.lang.String,java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: java.lang.ExceptionInInitializerError
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    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:205)
    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.ExceptionInInitializerError
    at hibDomain.HibernateUtil.buildSessionFactory(HibernateUtil.java:16)
    at hibDomain.HibernateUtil.<clinit>(HibernateUtil.java:7)
    at rpctest.server.RpctestServiceImpl.addUser(RpctestServiceImpl.java:19)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
    ... 22 more
Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
    at hibDomain.HibernateUtil.buildSessionFactory(HibernateUtil.java:11)
    ... 29 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload$WebAppClassLoaderExtension.findClass(JettyLauncher.java:372)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
    ... 31 more
[ERROR] 500 - POST /rpctest/testService (127.0.0.1) 57 bytes
   Request headers
      Accept: */*
      X-GWT-Permutation: HostedMode
      X-GWT-Module-Base: http://127.0.0.1:8888/rpctest/
      Content-Type: text/x-gwt-rpc; charset=utf-8
      Referer: http://127.0.0.1:8888/Rpctest.html?gwt.codesvr=127.0.0.1:9997
      Accept-Language: en-us
      Accept-Encoding: gzip, deflate
      User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
      Host: 127.0.0.1:8888
      Content-Length: 168
      Connection: Keep-Alive
      Cache-Control: no-cache
   Response headers
      Content-Type: text/plain

Из последней частитрассировка стека, похоже, что библиотека SLF4J как-то не видна.Тем не менее, у меня явно есть библиотека на моем пути:

\lib\antlr-2.7.6.jar    
\lib\commons-collections-3.1.jar 
\lib\dom4j-1.6.1.jar 
\lib\hibernate3.jar 
\lib\hibernate-cglib-repack-2.1_3.jar 
\lib\hibernate-entitymanager-4.0.0.CR5.jar 
\lib\javassist-3.4.GA.jar 
\lib\jta-1.1.jar 
\lib\mysql-connector-java-5.1.18-bin.jar 
\lib\slf4j-api-1.6.4.jar 
\lib\slf4j-simple-1.6.4.jar

1 Ответ

1 голос
/ 24 ноября 2011

Обязательно поместите все библиотеки в war/WEB-INF/lib.Если они есть в другом месте, сначала удалите их из пути к классам, переместите их, а затем снова добавьте их в путь к классам.

...