在Tomcat上运行GWT应用程序时出现错误StringIndexOutOfBoundsException
问题描述:
在Tomcat上运行我的GWT应用程序时出现以下错误。 在Jetty上运行时,它工作正常。 我的代码中没有使用charAt
函数。在Tomcat上运行GWT应用程序时出现错误StringIndexOutOfBoundsException
我该如何找出这个错误?
SEVERE: Unexpected error
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at com.google.gwt.autobean.server.impl.JsonSplittable.create(JsonSplitta
ble.java:35)
at com.google.gwt.autobean.shared.impl.StringQuoter.split(StringQuoter.j
ava:35)
at com.google.gwt.autobean.shared.AutoBeanCodex.decode(AutoBeanCodex.jav
a:520)
at com.google.gwt.requestfactory.server.SimpleRequestProcessor.process(S
impleRequestProcessor.java:121)
at com.google.gwt.requestfactory.server.RequestFactoryServlet.doPost(Req
uestFactoryServlet.java:118)
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(Appl
icationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso
r.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr
ocess(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:16
65)
at java.lang.Thread.run(Unknown Source)
答
它清理Tomcat的工作文件夹后工作。
答
此错误表示您的servlet正在接收空的请求主体(无长度,空字符串)。在你的Tomcat设置中可能有错误,它会在请求主体到达你的servlet之前去除它。很难说,而且我也不是Tomcat。
它不是您的代码,而是来自Google .. http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/autobean/server /impl/JsonSplittable.java?r=9189。我不知道它是如何在Jetty上工作的...有没有传递给tomcat的参数?或者可能是你正在传递参数,但为空且非空 - >“”。 – hanumant 2011-05-09 11:07:37
@hanumant:Jetty和Tomcat的参数相同。 – Alex 2011-05-09 11:17:24