Please Help,
I just tested my gwt app with RPC on hosted mode, it works fine. When
I deployed the app to Tomcat (Linux) it does not work. I get the
following message when the client issue a RPC call to the server: "The
call failed on the server; see server log for details" .
I included system.out.println in the server code, but nothing gets
printed, which mean that the server is not being executed and cannot
be the problem.
When I looked at the logs of Tomcat I see the following error:
Apr 3, 2009 2:05:00 PM org.apache.catalina.core.ApplicationContext log
SEVERE: Exception while dispatching incoming RPC call
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.extract
(ServerSerializationStreamReader.java:\
610)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.readInt
(ServerSerializationStreamReader.java:\
427)
at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.prepareToRead
(AbstractSerializationStreamRe\
ader.java:38)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.prepareToRead
(ServerSerializationStreamReader\
.java:382)
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:
234)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:162)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:85)
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.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:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Below is the content of my web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<!-- admin COPY THIS FILE TO THE PRODUCTION/WEB-INF DIRECTORY -->
<web-app version="2.5" xmlns="
http://java.sun.com/xml/ns/javaee"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>AvlDispatch Application</display-name>
<description>Application for Avl Dispatch System</description>
<context-param>
<param-name>webmaster</param-name>
<param-value>
ad...@mycompany.com</param-value>
<description>The EMAIL address of the administrator to whom
questions and comments about this application should be addres\
sed.</description>
</context-param>
<!-- Standard Action Servlet Configuration -->
<servlet>
<servlet-name>RemoteServices</servlet-name>
<servlet-
class>com.mycompany.teledispatch.avldispatch.server.RemoteServicesImpl</
servlet-class>
</servlet>
<servlet>
<servlet-name>RemoteServicesCompanies</servlet-name>
<servlet-
class>com.mycompany.teledispatch.avldispatch.server.RemoteServicesCompaniesImpl</
servlet-class>
</servlet>
<servlet>
<servlet-name>RemoteServicesDrivers</servlet-name>
<servlet-
class>com.mycompany.teledispatch.avldispatch.server.RemoteServicesDriversImpl</
servlet-class>
</servlet>
<servlet>
<servlet-name>RemoteServicesZones</servlet-name>
<servlet-
class>com.mycompany.teledispatch.avldispatch.server.RemoteServicesZonesImpl</
servlet-class>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>RemoteServices</servlet-name>
<url-pattern>/RemoteServices</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RemoteServicesCompanies</servlet-name>
<url-pattern>/RemoteServicesCompanies</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RemoteServicesDrivers</servlet-name>
<url-pattern>/RemoteServicesDrivers</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RemoteServicesZones</servlet-name>
<url-pattern>/RemoteServicesZones</url-pattern>
</servlet-mapping>
</web-app>
Oumar