2014-04-09 276 views
1

我有一個服務器端的基本服務,只是在表上查找。該代碼在隔離的代碼/ JUnit測試中工作正常。GWT服務器應用程序無法連接到數據庫

當我將它集成在服務器端,我得到一個例外:

org.apache.torque.TorqueException: Torque is not initialized 
    at org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:824) 
    at org.apache.torque.Torque.getConnection(Torque.java:290) 
    at org.apache.torque.util.Transaction.beginOptional(Transaction.java:106) 
    at org.apache.torque.util.BasePeer.doSelect(BasePeer.java:651) 
    at org.simmental.datamods.om.BaseAcctPeer.doSelectVillageRecords(BaseAcctPeer.java:527) 
    at org.simmental.datamods.om.BaseAcctPeer.doSelectVillageRecords(BaseAcctPeer.java:501) 
    at org.simmental.datamods.om.BaseAcctPeer.doSelect(BaseAcctPeer.java:397) 
    at org.redangus.dao.services.AccountServices.getAccountByPrefix(AccountServices.java:15) 
    at org.redangus.signup.server.HerdPrefixValidationServiceImpl.validatePrefixServer(HerdPrefixValidationServiceImpl.java:39) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561) 
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:265) 
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:305) 
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
    at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:68) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
    at org.eclipse.jetty.server.Server.handle(Server.java:370) 
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) 
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) 
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
    at java.lang.Thread.run(Thread.java:744) 

它看起來很像一些問題,谷歌的AppEngine,但它沒有被激活它我的環境。

我激活GAE看看會發生什麼,我也得到:

java.lang.NoClassDefFoundError: org/apache/torque/TorqueException 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493) 
    at java.lang.Class.getConstructor0(Class.java:2803) 
    at java.lang.Class.newInstance(Class.java:345) 
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127) 

[..]

Caused by: java.lang.ClassNotFoundException: org.apache.torque.TorqueException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:216) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 42 more 

從而徹底有道理......

當我回去不AppEngine,它仍然失敗,就像我的第一個例子。

我不想在AppEngine上運行我的代碼,這只是一個測試。

我不認爲扭矩實際上做什麼壞事這裏...

回答

0

好吧,這是一個奇怪的情況,但是:

  • 當我在命令行中使用代碼時,數據庫沒有啓動。

  • 當我在GWT中使用相同的代碼時,我不得不在我的代碼中通過Database.start()進行初始化。

所以我沒有責怪AppEngine :)。

0

的AppEngine上的錯誤似乎表明扭矩是不是在你的WEB-INF/lib

+0

謝謝@Thomas,我仔細看了看,並不在那裏......所有的類,JAR等似乎都在這裏。也許AppEngine有一些剩餘的sh * t? – jgp

相關問題