来自 GWT 的 RPC 调用中的异常

Posted

技术标签:

【中文标题】来自 GWT 的 RPC 调用中的异常【英文标题】:Exception in RPC call from GWT 【发布时间】:2013-09-25 17:34:11 【问题描述】:

我在运行 GWT 时遇到异常。

上面写着“com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract”。 可能的原因是什么。 这会在所有程序中发生,还是由于我对应用程序的配置。 谢谢

     [TP-Processor15] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/application] - Exception while dispatching incoming RPC call
    com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.company.cm.ui.client.model.group.GroupData com.company.cm.ui.client.GroupService.getGroup(java.lang.Integer) throws com.company.cm.ui.client.exception.ServiceException' threw an unexpected exception: java.lang.IllegalArgumentException: [Assertion failed] - this collection must not be empty: it must contain at least 1 element
            at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
            at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
            at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:551)
            at com.company.cm.ui.server.GwtSpringController.processCall(GwtSpringController.java:107)
            at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
            at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
            at com.company.cm.ui.server.GwtSpringController.handleRequest(GwtSpringController.java:88)
            at sun.reflect.GeneratedMethodAccessor944.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
            at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
            at com.sun.proxy.$Proxy122.handleRequest(Unknown Source)
            at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
            at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
            at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
            at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
            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 com.company.cm.ui.server.i18n.filter.I18nFilter.doFilter(I18nFilter.java:37)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.company.cm.ui.server.header.filter.ExpiresHeaderFilter.doFilter(ExpiresHeaderFilter.java:65)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.integrien.alive.ui.util.MainPortalFilter.doFilter(MainPortalFilter.java:255)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
            at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
            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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
            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:293)
            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(Unknown Source)
    Caused by: java.lang.IllegalArgumentException: [Assertion failed] - this collection must not be empty: it must contain at least 1 element
            at org.springframework.util.Assert.notEmpty(Assert.java:268)
            at org.springframework.util.Assert.notEmpty(Assert.java:280)
            at com.integrien.alive.vm.manager.group.GroupManagerImpl.getGroup(GroupManagerImpl.java:629)
            at sun.reflect.GeneratedMethodAccessor1755.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
            at org.springframework.aop.interceptor.CustomizableTraceInterceptor.invokeUnderTrace(CustomizableTraceInterceptor.java:256)
            at org.springframework.aop.interceptor.AbstractTraceInterceptor.invoke(AbstractTraceInterceptor.java:110)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
            at com.sun.proxy.$Proxy107.getGroup(Unknown Source)
            at com.company.cm.ui.server.GroupServiceImpl.getGroup(GroupServiceImpl.java:172)
            at sun.reflect.GeneratedMethodAccessor1759.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
            at org.springframework.aop.interceptor.CustomizableTraceInterceptor.invokeUnderTrace(CustomizableTraceInterceptor.java:256)
            at org.springframework.aop.interceptor.AbstractTraceInterceptor.invoke(AbstractTraceInterceptor.java:110)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
            at com.sun.proxy.$Proxy122.getGroup(Unknown Source)
            at sun.reflect.GeneratedMethodAccessor2580.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
            ... 51 more

【问题讨论】:

【参考方案1】:

您的服务 com.company.cm.ui.client.GroupService.getGroup(java.lang.Integer) 中的某些方法似乎引发了 IllegalArgumentException。某些断言失败,因为它期望某个集合至少有一个元素。

你写的是 com.company.cm.ui.client.GroupService 还是外部库?

【讨论】:

以上是关于来自 GWT 的 RPC 调用中的异常的主要内容,如果未能解决你的问题,请参考以下文章

运行时异常后 GWT RPC 调用不回滚事务

如何在 GWT RPC 中将异常从服务器传递到客户端

分派传入 RPC 调用时出现异常 java.lang.NoSuchMethodError: com.google.gwt.user.server.rpc.RPCRequest

GWT:为 com.extjs.gxt.ui.client.data.BaseListLoadResult 分派传入 RPC 调用时出现异常

GWT RPC 失败,没有错误也没有异常

如何在 Spring MVC-Spring Security 应用程序中处理 GWT RPC 调用的会话过期异常