GWT报错com.google.gwt.user.server.rpc.UnexpectedException

转载 2012年03月26日 18:42:46

GWT连接mysql数据库

  GWT实现利用jdbc连接mysql数据库,在连接过程中遇到了许多问题,在这里做一下记录。实现过程如下:

  1、首先创建一个项目image .

2、在服务器端实现连接mysql,其代码如下:

。。。

@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
        GreetingService {

    public String greetServer(String input) {
        String serverInfo = getServletContext().getServerInfo();
        String userAgent = getThreadLocalRequest().getHeader("User-Agent");
         Connection con = null; 
            try { 
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                String url = "jdbc:mysql://localhost:3306/test_ssh?autoReconnect=true&useUnicode=true&characterEncoding=utf-8"; 
                con = DriverManager.getConnection(url, "root", "password"); 
                if (!con.isClosed()) 
                    System.out.println("Successfully connected to " 
                            + "MySQL server using TCP/IP…"); 
            } catch (Exception e) { 
                System.err.println("Exception: " + e.getMessage()); 
            } finally { 
                try { 
                    if (con != null) 
                        con.close(); 
                } catch (SQLException e) { 
                } 
            } 
            return "Hello, " + input + "!<br><br>I am running " + serverInfo 
                    + ".<br><br>It looks like you are using:<br>" + userAgent;
    }

。。。

3、添加mysql驱动到war中WEB-INF中lib下面:

image

4、运行,可能会报如下错误:

2010-1-11 5:22:05 com.google.appengine.tools.development.ApiProxyLocalImpl log
SEVERE: [1263187325145000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method ‘public abstractjava.lang.String com.easymorse.client.GreetingService.greetServer(java.lang.String)’ threw an unexpected exception:java.lang.ExceptionInInitializerError
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    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.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)
Caused by: java.lang.ExceptionInInitializerError
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.easymorse.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:24)
    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:597)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
    … 30 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
    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:151)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:176)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
    at java.lang.Thread.init(Thread.java:332)
    at java.lang.Thread.<init>(Thread.java:377)
    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.Connection.<clinit>(Connection.java:1087)
    … 40 more

这个的解决办法是:

image

接下来可能会报如下错误:

2010-1-11 5:25:20 com.google.appengine.tools.development.ApiProxyLocalImpl log
SEVERE: [1263187520122000] 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.easymorse.client.GreetingService.greetServer(java.lang.String)’ threw an unexpected exception: java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.Connection
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    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.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)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.Connection
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at com.easymorse.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:24)
    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:597)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
    … 30 more

其解决办法如下:

image

这样就可以了。

 

注意:3中的解决办法可以直接

image

就不会出以上错误了。


原创…………………………

这是从网上找到别人写的,确实是这个错误的原因,但是当建立项目的时候就勾选了这个,在项目运行中而中途去掉这个勾选,我的项目除了错误,也就是说这里是有配置和jar包的引入所致。对于我的项目,我的的解决办法是去掉勾选之后,删除了一个配置文件,和一些引进来的jar包,成功解决了。

其中的配置文件是appengine-web.xml。

jar包很多:所有用appengine开头的都是。还有其他的


GWT 基本环境配置--包括安装eclipse插件

网上关于GWT的环境配置还真不多,刚刚接触,下面按我的环境配置,整理一下,所有的版本以我用的为例: 第一步:安装JDK--1.6.0 第二步:安装eclipse 3.6 第三步:下载GW...
  • chiperfect
  • chiperfect
  • 2012年06月15日 12:56
  • 6068

Gwt xml配置文件

Inherits指明继承模块,继承后可以共享资源,如js资源;必需项,内容是 "com.google.gwt.core.Core"或inherit自它的model的名称; entry-po...
  • huang798807481
  • huang798807481
  • 2013年03月22日 22:29
  • 2186

GWT com.google.gwt.user.client.rpc.StatusCodeException: 404 <html>

修改web.xml的servlet配置
  • guotong1988
  • guotong1988
  • 2014年07月18日 15:31
  • 1537

GWT 实现文件上传和下载

上星期老师叫我学写一个fileupload 和 download ,琢磨了很久~~ 代码网上很多,关键跑出来有效果 是很纠结人的。。整理一下吧。upload:(推荐一本书 《Google Web To...
  • rptotal
  • rptotal
  • 2011年02月28日 16:41
  • 6846

GWT开发效率困境与解决之道

GWT开发效率困境与解决之道GWT初学的人员都觉得GWT学习曲线高,开发慢,你可能一气之下把这个IDE给扔掉冲动。根据以往的GWT培训来看,GWT的开发效率主要集中在以下几点:编译时间过长 – 每修...
  • applebomb
  • applebomb
  • 2016年09月06日 11:25
  • 1021

GWT 2.8的调试

今天刚开始学习GWT,照着其官方网站上的教程写例子做实验。当进行到Debugging一节的时候,发现设置的断点总是不能起作用。在google上搜索,发现有人说使用SDM(Super Dev Mode)...
  • logsharp
  • logsharp
  • 2017年01月17日 10:00
  • 1073

Eclipse 安装GWT环境

Eclipse 安装GWT环境eclipse版本为Neon版本,在线安装GWT太慢,一下是本地操作的方法: Eclipse 选择 Help –> Install New Software,在 Wor...
  • u011521382
  • u011521382
  • 2017年09月13日 11:12
  • 544

GWT 学习总结

最近领导让研究GWT,学习这个AJAX框架,看看对我们的系统能否集成进去,花了1周多时间研究啊。照葫芦画瓢,做了一个Demo,对这个框架也有了一个初步的认识, 感觉就是一个Web的 SWT。    ...
  • u010419967
  • u010419967
  • 2014年07月26日 15:45
  • 1487

gwt模块功能实现步骤

gwt开发模式是MVP模式,与MVC模式有点区别  MVP是Model-View-Presenter的简称,从根本上来说,她是MVC的一个变种,View负责显示,Presenter负责逻辑的处理。...
  • whs19910204648688
  • whs19910204648688
  • 2013年06月14日 15:05
  • 1307

GWT开发 - 开发环境搭建 Maven+Eclipse+Tomcat

1.创建GWT Maven项目 2.安装必要的Eclipse插件 2.1 Maven Integration for Eclipse (m2e) 支持Java maven项目。 2.2...
  • neuandustbneo
  • neuandustbneo
  • 2012年12月24日 01:15
  • 4562
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GWT报错com.google.gwt.user.server.rpc.UnexpectedException
举报原因:
原因补充:

(最多只允许输入30个字)