`
vivianLiuFang
  • 浏览: 17549 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
社区版块
存档分类
最新评论

GWT 连接数据库问题解决及例子

    博客分类:
  • GWT
阅读更多

      最近在搞GWT,之前一直是写Client端的代码,没有和Service端交互过,现在利用GWT的RPC机制和Server端交互,并且连接Oracle数据库,随便写了一个RPC的例子,跑得还挺顺畅,后来就加了连接数据库的语句就怎么也跑不通,不知道出了什么问题,在网上也找了些资料,也按照上面的方式做了,可报出的错误还是一样,错误如下:

 

java.lang.NoClassDefFoundError: java.net.Socket is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at oracle.net.nt.TcpNTAdapter.connect(Unknown Source)
    at oracle.net.nt.ConnOption.connect(Unknown Source)
    at oracle.net.nt.ConnStrategy.execute(Unknown Source)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(Unknown Source)
    at oracle.net.ns.NSProtocol.establishConnection(Unknown Source)
    at oracle.net.ns.NSProtocol.connect(Unknown Source)
    at oracle.jdbc.ttc7.TTC7Protocol.connect(TTC7Protocol.java:1687)
    at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:214)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.founder.employeegwt.utils.DBConnection.getConnection(DBConnection.java:17)
    at com.founder.employeegwt.server.EmployeeServiceImpl.<init>(EmployeeServiceImpl.java:22)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    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:70)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352)
    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)
2010-1-19 10:16:17 com.google.apphosting.utils.jetty.JettyLogger warn
警告: /employeegwt/employee
java.lang.NoClassDefFoundError: java.net.Socket is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at oracle.net.nt.TcpNTAdapter.connect(Unknown Source)
    at oracle.net.nt.ConnOption.connect(Unknown Source)
    at oracle.net.nt.ConnStrategy.execute(Unknown Source)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(Unknown Source)
    at oracle.net.ns.NSProtocol.establishConnection(Unknown Source)
    at oracle.net.ns.NSProtocol.connect(Unknown Source)
    at oracle.jdbc.ttc7.TTC7Protocol.connect(TTC7Protocol.java:1687)
    at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:214)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:346)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.founder.employeegwt.utils.DBConnection.getConnection(DBConnection.java:17)
    at com.founder.employeegwt.server.EmployeeServiceImpl.<init>(EmployeeServiceImpl.java:22)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    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:70)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352)
    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)

 

 

找了很多解决方法 就是搞不定,后来把它编译放在Tomcat下跑,竟然可以,后来经过多方查找,竟然发现不能使用GWT App Angine,就做了以下设置:

选择项目右键->Google->App Angine Settings...->Use Google App Engine复选框,把对勾给去掉,就可以了!

下面把我的一个GWT连接数据库的例子加在附件上,可以跑通的!

 

2
1
分享到:
评论
3 楼 Mr.TianShu 2013-03-20  
BAE也出现这问题。。暂时没解决。。肯定是沙盒运行中的限制。
2 楼 smiky 2010-01-22  
MS是权限问题,我也碰到这个问题了,你看gwt官方的demo,说明了布署到tomcat时要对相应的servlet进行grant相应的权限,你这不能算是解决问题的方案吧
1 楼 yonglin4605 2010-01-19  
GAE会对class文件进行增强修改,如果不是在GAE上运行,在创建GWT项目时就不要开启GAE
这种增强是给google自己的面向对象数据库用的

相关推荐

    Gwt连接数据库的案例

    使用GWT编写一个连接数据库的小例子,安装好google的GWT插件直接附加就可

    GWT操作数据库例子

    GWT操作数据库例子,用表格显示在页面上!

    GWT Demo,GWT学习时的一些小例子

    GWT学习时的一些小例子,和大家分享,GWT学习时的一些小例子,和大家分享

    GWT学习之好的例子

    GWT学习之好的例子GWT学习之好的例子GWT学习之好的例子GWT学习之好的例子

    GWT数据库管理系统

    Without Eclipse: 1) Create a new directory for the chapter apps. 2) Run applicationCreator for each chapter (this will create the compile scripts with your environment in them) ...

    GWT RPC详细例子:代码加文档说明

    GWT的环境搭建详细配置说明,GWT中RPC调用的详细例子,内附代码加文档说明。

    gwt 练习 gwt学习

    gwt 练习gwt 练习gwt 练习gwt 练习

    gwt甘特图源码例子

    gwt甘特图源码例子,gwt甘特图源码例子gwt甘特图源码例子,用java完成

    gwt+spring+hibernate

    gwt+spring+hibernate整合例子,导入myeclipse中(要安gwt插件)即可用,数据库自己去代码中查看。包是精简版的,去掉很多不必要的包

    eclipse中使用gwt插件开发

    gwt FAQ 介绍控件和方法 split panel中放置一棵树 客户端与服务器交互的例子 ...客户端连接数据库的例子 tabbar用法示例 解析xml的公共方法 建立数据库连接的公共方法 调用数据库连接公共方法并执行sql TabPanel的实现

    GWT安装和使用

    Google最近推出的GWT有望为我们解决这个难题,GWT是一个开发Ajax应用的框架,它使程序员用Java同时开发客户端和服务器端的代码。GWT的编译器会把用于开发客户端的Java代码转化成Javascript和Html,而程序员不用关心...

    GWT入门 GWT中文教程

    EXT-GWT2.0.1+API+DOC gwtdesigner Gwt-Ext基础-中级-进阶 GWT快速开发 GWT入门 GWT中文教程

    GWT工具GWT工具GWT工具GWT工具GWT工具GWT工具

    fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具

    hibernate+gwt2.4

    一个gwt和hibernate整合的例子

    Gwt中文手册,GWt入门

    Gwt中文手册,GWt入门Gwt中文手册,GWt入门Gwt中文手册,GWt入门

    gwt入门-gwt从这里开始

    gwt 入门,是你开始学习gwt的大道 安装之后的目录结构为: C:\程序开发\Java\gwt-windows-1.4.59 doc(文档目录,开发文档和Java API文档) samples(示例代码目录,非常有名的KitchenSink示例代码即在此目录中)...

    gwt开发实例实现

    gwt开发实例实现web +ajax

    GWT开发者手册 GWT开发者手册

    基本概念及GWT结构及命令,开发等的介绍

    GWT入门及用例文档

    Ajax 被用于创建更加动态和交互性更...Google Web Toolkit (简称GWT) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java 语言开发 Ajax 应用。本文中作者将介绍如何使用 GWT 开发 Ajax 应用的基本方法和步骤。

Global site tag (gtag.js) - Google Analytics