GWT IllegalArgumentException:encodedRequest不能为空
我正在使用gwt1.5、struts2、spring和hibernate。我遇到以下错误:GWT IllegalArgumentException:encodedRequest不能为空,gwt,encoding,Gwt,Encoding,我正在使用gwt1.5、struts2、spring和hibernate。我遇到以下错误: ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/project name] - Exception while dispatching incoming RPC call java.lang.IllegalArgumentException: encodedRequest cannot be empty 此错误仅
ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/project name] - Exception while dispatching incoming RPC call java.lang.IllegalArgumentException: encodedRequest cannot be empty
此错误仅在IE中出现,但在FireFox中工作正常。这似乎是代理问题,代理服务器正在剥离请求主体,请参阅
此外,根据我的经验,这个问题似乎只发生在使用IE7.0而不是IE6.0时,我也有同样的错误。这是由于使用NTLM身份验证时,没有来自Internet Explorer的数据的POST请求造成的 解释如下:
- 在MS Windows上的Tomcat上使用SecurityFilter
<filter> <filter-name>MySecurityFilter</filter-name> <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class> <init-param> <param-name>waffle.servlet.spi.NegotiateSecurityFilterProvider/protocols</param-name> <param-value> NTLM </param-value> </init-param> </filter> <filter-mapping> <filter-name>MySecurityFilter</filter-name> <url-pattern>/appA/*</url-pattern> <url-pattern>/appB/*</url-pattern> </filter-mapping>`
显然,IE只会在重新发送POST请求时发送标题。以真正的Microsoft方式,这个问题实际上已经知道一段时间了,已经发布并安装了修补程序,但没有在客户端计算机上启用。如果不想强制所有用户编辑其注册表,则需要在服务器上禁用HTTP保持活动,或将保持活动超时增加到>60秒。对于我的apache httpd服务器,我将KeepAliveTimeout设置为65,将MaxKeepAliveRequests设置为0,这样服务器就不会启动到浏览器的连接重置。有关此问题的任何更新,请注意,我在IE6本身上收到此错误
registry key:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet
Settings/ Value Name: DisableNTLMPreAuth
Data Type: REG_DWORD
Value: 1