【问题标题】:Problem with GWT 2.4 rc1 RequestFactory on tomcatTomcat 上 GWT 2.4 rc1 RequestFactory 的问题
【发布时间】:2012-10-21 20:46:31
【问题描述】:

我们的 gwt 应用程序在使用 gwt 2.4rc1 的开发模式下运行良好,但是当我们在 tomcat 6 上部署时,在进行第一次 requestfactory 调用时,我们在服务器端遇到以下异常。

java.lang.NullPointerException
    at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
    at com.google.web.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:225)
    at com.google.web.bindery.requestfactory.server.ServiceLayerCache.resolveRequestFactory(ServiceLayerCache.java:198)
    at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:203)
    at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
    at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)
    at com.sample.ads.server.service.AdsRequestFactoryServlet.doPost(AdsRequestFactoryServlet.java:42)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:662)

在客户端,500(内部服务器错误)

【问题讨论】:

    标签: gwt requestfactory


    【解决方案1】:

    有线格式在 GWT 2.3 和 2.4 之间发生了变化,以支持混淆(因此大大缩短)的类型标识符。您有一个 2.3 客户端试图与 2.4 服务器通信,并且 RC1 中存在一个错误,导致该案例以无益的方式失败。解决方法是针对更新的 requestfactory 代码重新编译您的客户端代码。

    【讨论】:

    【解决方案2】:

    为了让安卓应用与谷歌应用引擎一起工作,你必须在 Eclipse 中创建与 App Engine 连接的安卓项目,并默认配置 GWT 2.3.0:

    Windows -> Preferences -> Google -> Web Toolkit(而不是 2.4.0rc1)

    如果您在创建项目后尝试将 GWT 版本从 2.4.0rc1 更改为 2.3.0,Android 应用程序将始终出现此错误(Web 应用程序可以工作)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多