If you are using Google App Engine (separate from GWT), you *cannot* use an
external database. App Engine doesn't allow you to open socket connections,
and that is exactly what the getConnection() method does.

--Sri


2009/9/21 Chamira Fernando <chamira.inc...@gmail.com>

>
> Hi All,
>
> I have the same problem when I connect to MySQL database,
>
> What I understand from the GWT doc, whatever server side scripts we
> have to in .server package and this will be on server side on host
> mode when we debug the application.
>
> here is the scenario
>
> I can get the data from the server side if there is no database
> connection, everything works fine, the moment I run database
> connection method
>
> I get errors! narrowing the problem i tried to load the class
> (Class.forName(DRIVER)) only.. it seems class is loaded (i get no
> errors) but the moment I run
> connection = DriverManager.getConnection(URL,USER,PASS); method will
> cause the problem .. if this is an sql error, should be caught ??
>
> mind you
> my mysql connector is in proper dirs (otherwise I can't load DRIVER ).
>
> Do I need to set $catalina.home for hosted mode? then can someone help
> to do it (im using eclipse plugin)
>
> Can someone come up with an answer, prefer small script to
> understand...
>
> here is the stack trace I got
>
> Sep 21, 2009 12:05:02 PM
> com.google.appengine.tools.development.ApiProxyLocalImpl log
> SEVERE: [1253534702085000] javax.servlet.ServletContext log: Exception
> while dispatching incoming RPC call
> com.google.gwt.user.server.rpc.UnexpectedException: Service method
> 'public abstract java.lang.String
> com.pro.student.client.GreetingService.greetServer(java.lang.String)'
> threw an unexpected exception: java.lang.ExceptionInInitializerError
>        at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure
> (RPC.java:360)
>        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
> (RPC.java:546)
>        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
> (RemoteServiceServlet.java:166)
>        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
> (RemoteServiceServlet.java:86)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>        at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1093)
>        at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
> (TransactionCleanupFilter.java:43)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>        at com.google.appengine.tools.development.StaticFileFilter.doFilter
> (StaticFileFilter.java:121)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>        at org.mortbay.jetty.servlet.ServletHandler.handle
> (ServletHandler.java:360)
>        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:712)
>        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
>        at
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
> (DevAppEngineWebAppContext.java:54)
>        at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
>        at com.google.appengine.tools.development.JettyContainerService
> $ApiProxyHandler.handle(JettyContainerService.java:313)
>        at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
>        at org.mortbay.jetty.Server.handle(Server.java:313)
>        at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 506)
>        at org.mortbay.jetty.HttpConnection$RequestHandler.content
> (HttpConnection.java:844)
>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>        at org.mortbay.io.nio.SelectChannelEndPoint.run
> (SelectChannelEndPoint.java:396)
>        at org.mortbay.thread.BoundedThreadPool$PoolThread.run
> (BoundedThreadPool.java:442)
> Caused by: java.lang.ExceptionInInitializerError
>        at com.mysql.jdbc.NonRegisteringDriver.connect
> (NonRegisteringDriver.java:283)
>        at java.sql.DriverManager.getConnection(DriverManager.java:525)
>        at java.sql.DriverManager.getConnection(DriverManager.java:171)
>        at com.pro.student.server.GreetingServiceImpl.db
> (GreetingServiceImpl.java:52)
>        at com.pro.student.server.GreetingServiceImpl.greetServer
> (GreetingServiceImpl.java:23)
>        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:592)
>        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
> (RPC.java:527)
>        ... 27 more
> Caused by: java.security.AccessControlException: access denied
> (java.lang.RuntimePermission modifyThreadGroup)
>        at java.security.AccessControlContext.checkPermission
> (AccessControlContext.java:264)
>        at java.security.AccessController.checkPermission
> (AccessController.java:427)
>        at java.lang.SecurityManager.checkPermission(SecurityManager.java:
> 532)
>        at com.google.appengine.tools.development.DevAppServerFactory
> $CustomSecurityManager.checkPermission(DevAppServerFactory.java:139)
>        at com.google.appengine.tools.development.DevAppServerFactory
> $CustomSecurityManager.checkAccess(DevAppServerFactory.java:166)
>        at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
>        at java.lang.Thread.init(Thread.java:310)
>        at java.lang.Thread.<init>(Thread.java:358)
>        at java.util.TimerThread.<init>(Timer.java:456)
>        at java.util.Timer.<init>(Timer.java:71)
>        at java.util.Timer.<init>(Timer.java:122)
>        at com.mysql.jdbc.ConnectionImpl.<clinit>(ConnectionImpl.java:208)
>        ... 37 more
>
>
>
>
>
> On Sep 3, 7:21 am, GumbyGWTBeginner <stephan.gump...@gmail.com> wrote:
> > Hi Guys,
> >
> > Was wondering if anyone could answer a small question?
> >
> >  I have created a class called DBFlow  (Code below) which connects to
> > aMySQLDB and retrieve the number of rows in a DB.
> >
> > I am new at this could anyone throw some light on the subject.
> >
> > ****************Error Message****************
> >
> > [ERROR] Line 51: The method forName(String) is undefined for the type
> > Class
> >
> > ****************Code to Call Class****************
> >
> >                   DBFlow TestTheDB = new DBFlow();
> >                   TestTheDB.main();
> >
> > ****************Class Code****************
> >
> > import java.sql.Connection;
> > import java.sql.DriverManager;
> > import java.sql.ResultSet;
> > import java.sql.SQLException;
> > import java.sql.Statement;
> > import java.lang.Class;
> > import com.google.gwt.user.client.Window;
> >
> > public class DBFlow {
> >
> >         public void onModuleLoad() {
> >                 //sdsd
> >
> >         }
> >
> >         public DBFlow() {
> >                 //sdsd
> >
> >         }
> >
> >         public void main() {
> >                Connectionconn = null;
> >                 try {
> >                         conn = getConnection();
> >                         String tableName = "family";
> >                         Window.alert("tableName=" + tableName);
> >                         Window.alert("conn=" + conn);
> >                         Window.alert("rowCount=" + countRows(conn,
> tableName));
> >                 } catch (Exception e) {
> >                         Window.alert("No Connect");
> >                         e.printStackTrace();
> >                         //System.exit(1);  // Edit out as it is an erro
> >                 } finally {
> >                         // releasedatabaseresources
> >                         try {
> >                                 conn.close();
> >                         } catch (SQLException e) {
> >                                 e.printStackTrace();
> >                         }
> >                 }
> >         }
> >
> >         publicConnectiongetConnection() throws Exception {
> >                 String driver = "com.mysql.jdbc.Driver";
> >                 String url = "jdbc:mysql://localhost:3306/dogs";
> >                 String username = "root";
> >                 String password = "mypass";
> >
> >                 Class.forName(driver); // loadMySQLdriver
> > ***************************************Error here apprantly
> >                Connectionconn = DriverManager.getConnection(url,
> username,
> > password);
> >                 return conn;
> >         }
> >
> >         public int countRows(Connectionconn, String tableName) throws
> > SQLException {
> >            // select the number of rows in the table
> >                 Statement stmt = null;
> >                 ResultSet rs = null;
> >                 int rowCount = -1;
> >                 try {
> >                         stmt = conn.createStatement();
> >                         rs = stmt.executeQuery("SELECT COUNT(*) FROM " +
> tableName);
> >                         // get the number of rows from the result set
> >                         rs.next();
> >                    rowCount = rs.getInt(1);
> >                 } finally {
> >                         rs.close();
> >                         stmt.close();
> >                 }
> >                 return rowCount;
> >         }
> >
> >
> >
> > }
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to