Hi,

JDBC is not supported on app engine, you must use Google Datastore
either directly or via JDO / JPA or via packages like Objectify
regards
didier



On Sep 2, 5:28 pm, Andy Faulkner <[email protected]>
wrote:
> Hi,
>
> I'm trying to develop an AppEngine application in Java, that will read
> some values from a local MSSQL database on our internal network using
> Microsoft's JDBC driver, and then insert those values into a reference
> spreadsheet in our Google Docs domain.
>
> I'm falling at the first hurdle!
>
> I have Eclipse Helios, with Version 1.3.7 of the App Engine SDK Plugin
> installed.
>
> So, I create a new App Engine project (HelloWorld) and when I run
> this, it works just fine.
>
> And then, just to get things going, I have modified the doGet method
> so that it looks like this (I'm expecting that this will extract some
> records from my database, and then print them to the HTML page) - just
> want to get things going before I really get to work.
>
> @SuppressWarnings("serial")
> public class VisionConnectorServlet extends HttpServlet {
>         public void doGet(HttpServletRequest req, HttpServletResponse resp)
>                         throws IOException {
>
>                 resp.setContentType("text/plain");
>
>                 // Declare the JDBC objects.
>               Connection con = null;
>               Statement stmt = null;
>               ResultSet rs = null;
>
>               try {
>                  // Establish the connection.
>                  
> Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
>
>                  SQLServerDataSource ds = new SQLServerDataSource();
>                  ds.setUser("DeltekVision");
>                  ds.setPassword("Password1");
>                  ds.setServerName("server02");
>                  ds.setPortNumber(1433);
>                  ds.setDatabaseName("vision2");
>                  con = ds.getConnection();
>
>                  String SQL = "SELECT * FROM CL where status='A'";
>                  stmt = con.createStatement();
>                  rs = stmt.executeQuery(SQL);
>
>                  // Iterate through the data in the result set and display
> it.
>                  while (rs.next()) {
>                         resp.getWriter().println("Client: " + 
> rs.getString("Name"));
>                         resp.getWriter().println("<br/>");
>                  }
>               }
>
>               // Handle any errors that may have occurred.
>               catch (Exception e) {
>                  e.printStackTrace();
>               }
>               finally {
>                  if (rs != null) try { rs.close(); } catch(Exception e) {}
>                  if (stmt != null) try { stmt.close(); } catch(Exception e)
> {}
>                  if (con != null) try { con.close(); } catch(Exception e) {}
>                  System.exit(1);
>               }
>
>         }
>
> When I run the application the Jetty server fires up as expected (so
> everything builds OK) but when I access the web page, kaboom:
>
> java.security.AccessControlException: access denied
> (java.net.SocketPermission cccccc:1433 connect,resolve)
>         at
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:
> 323)
>         at
> java.security.AccessController.checkPermission(AccessController.java:
> 546)
>         at java.lang.SecurityManager.checkPermission(SecurityManager.java:
> 532)
>         at com.google.appengine.tools.development.DevAppServerFactory
> $CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
>         at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
>         at
> com.microsoft.sqlserver.jdbc.SQLServerConnectionSecurityManager.checkConnect(SQLServerConnection.java:
> 3229)
>         at
> com.microsoft.sqlserver.jdbc.ServerPortPlaceHolder.doSecurityCheck(FailOverInfo.java:
> 144)
>         at
> com.microsoft.sqlserver.jdbc.ServerPortPlaceHolder.<init>(FailOverInfo.java:
> 135)
>         at
> com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:
> 968)
>         at
> com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:
> 800)
>         at
> com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:
> 700)
>         at
> com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:
> 593)
>         at
> com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:
> 57)
>         at
> com.integrity.visionconnector.VisionConnectorServlet.doGet(VisionConnectorServlet.java:
> 31)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 511)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1166)
>         at
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
> 58)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1157)
>         at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
> 43)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1157)
>         at
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
> 122)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1157)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
> 388)
>         at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> 216)
>         at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
> 182)
>         at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
> 765)
>         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 418)
>         at
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
> 70)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
>         at com.google.appengine.tools.development.JettyContainerService
> $ApiProxyHandler.handle(JettyContainerService.java:349)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
>         at org.mortbay.jetty.Server.handle(Server.java:326)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 542)
>         at org.mortbay.jetty.HttpConnection
> $RequestHandler.headerComplete(HttpConnection.java:923)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>         at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> 409)
>         at org.mortbay.thread.QueuedThreadPool
> $PoolThread.run(QueuedThreadPool.java:582)
> 02-Sep-2010 16:24:42 com.google.apphosting.utils.jetty.JettyLogger
> warn
> WARNING: /visionconnector
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission exitVM.1)
>         at
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:
> 323)
>         at
> java.security.AccessController.checkPermission(AccessController.java:
> 546)
>         at java.lang.SecurityManager.checkPermission(SecurityManager.java:
> 532)
>         at com.google.appengine.tools.development.DevAppServerFactory
> $CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
>         at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
>         at java.lang.Runtime.exit(Runtime.java:88)
>         at java.lang.System.exit(System.java:904)
>         at
> com.integrity.visionconnector.VisionConnectorServlet.doGet(VisionConnectorServlet.java:
> 52)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 511)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1166)
>         at
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
> 58)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1157)
>         at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
> 43)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1157)
>         at
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
> 122)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1157)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
> 388)
>         at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> 216)
>         at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
> 182)
>         at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
> 765)
>         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 418)
>         at
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
> 70)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
>         at com.google.appengine.tools.development.JettyContainerService
> $ApiProxyHandler.handle(JettyContainerService.java:349)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
>         at org.mortbay.jetty.Server.handle(Server.java:326)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 542)
>         at org.mortbay.jetty.HttpConnection
> $RequestHandler.headerComplete(HttpConnection.java:923)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>         at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> 409)
>         at org.mortbay.thread.QueuedThreadPool
> $PoolThread.run(QueuedThreadPool.java:582)
>
> I'd really appreciate if someone can help me to resolve these errors.
> Do I need a policy file? And if so, where should it reside and how do
> I link it to my application?
>
> Many thanks,
>
> Andy

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to