Hi,
I have created a  small application using GWT1.5.3. I send a custom
object via RPC to talk to my server. The object is serializable and
everything works fine, till I introduce a HashMap<String, String> into
my object. When i I populate this hashmap and try to send it across
from client to server or server to client, i get the following error:


09:31:16,229 ERROR [[/AccountMgt]] Exception while dispatching
incoming RPC call
com.google.gwt.user.client.rpc.SerializationException:
java.lang.IllegalArgumentException: argument type mismatch
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeWithCustomSerializer
(ServerSerializationStreamWriter.java:
690)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl
(ServerSerializationStreamWriter.java:659)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize
(ServerSerializationStreamWriter.java:593)
        at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject
(AbstractSerializationStreamWriter.java:129)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter
$ValueWriter$8.write(ServerSerializationStreamWriter.java:146)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue
(ServerSerializationStreamWriter.java:530)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeClass
(ServerSerializationStreamWriter.java:636)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl
(ServerSerializationStreamWriter.java:666)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize
(ServerSerializationStreamWriter.java:593)
        at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject
(AbstractSerializationStreamWriter.java:129)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter
$ValueWriter$8.write(ServerSerializationStreamWriter.java:146)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue
(ServerSerializationStreamWriter.java:530)
        at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:
573)
        at com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess
(RPC.java:441)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:529)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:164)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:
717)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:
810)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:178)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:175)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:74)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:105)
        at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:156)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run
(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeWithCustomSerializer
(ServerSerializationStreamWriter.java:
678)
        ... 37 more
09:31:55,822 ERROR [[/AccountMgt]] An
IncompatibleRemoteServiceException was thrown while processing this
call.
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException:
java.lang.IllegalArgumentException: argument type mismatch
        at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:
298)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:163)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:
717)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:
810)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:178)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:175)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:74)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:105)
        at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:156)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run
(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)
Caused by: com.google.gwt.user.client.rpc.SerializationException:
java.lang.IllegalArgumentException: argument type mismatch
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize
(ServerSerializationStreamReader.java:524)
        at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject
(AbstractSerializationStreamReader.java:61)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader
$ValueReader$8.readValue(ServerSerializationStreamReader.java:131)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue
(ServerSerializationStreamReader.java:372)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeClass
(ServerSerializationStreamReader.java:575)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeImpl
(ServerSerializationStreamReader.java:608)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize
(ServerSerializationStreamReader.java:502)
        at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject
(AbstractSerializationStreamReader.java:61)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader
$ValueReader$8.readValue(ServerSerializationStreamReader.java:131)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue
(ServerSerializationStreamReader.java:372)
        at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:
287)
        ... 23 more
Caused by: java.lang.IllegalArgumentException: argument type mismatch
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeWithCustomFieldDeserializer
(ServerSerializationStreamRea
der.java:681)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeImpl
(ServerSerializationStreamReader.java:601)
        at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize
(ServerSerializationStreamReader.java:502)
        ... 33 more


The object which I send across is :
public class AccountGroup implements  Serializable{

        private static final long serialVersionUID = 1L;
        private String dnbUserID;
        private String dnbPassword;
        private String dnbInstallation;
        private String dnbSubscriberNum;
        private String ccidInstallation;
        private String accountGroupName;
        private String accountGroupDescription;
        private String accountNumber;
        private String exncfInstallation;
        private String vendorPath;
        private String primaryVendor;
        private String loggingLevel;
        private long seqNum;
        private HashMap<String, String> value;


        public String getLoggingLevel() {
                return loggingLevel;
        }
        public void setLoggingLevel(String loggingLevel) {
                this.loggingLevel = loggingLevel;
        }
        public String getDnbUserID() {
                return dnbUserID;
        }
        public void setDnbUserID(String dnbUserID) {
                this.dnbUserID = dnbUserID;
        }
        public String getDnbPassword() {
                return dnbPassword;
        }
        public void setDnbPassword(String dnbPassword) {
                this.dnbPassword = dnbPassword;
        }
        public String getDnbInstallation() {
                return dnbInstallation;
        }
        public void setDnbInstallation(String dnbInstallation) {
                this.dnbInstallation = dnbInstallation;
        }
        public String getDnbSubscriberNum() {
                return dnbSubscriberNum;
        }
        public void setDnbSubscriberNum(String dnbSubscriberNum) {
                this.dnbSubscriberNum = dnbSubscriberNum;
        }
        public HashMap<String, String> getValue() {
                return value;
        }
        public void setValue(HashMap<String, String> value) {
                this.value = value;
        }
        public String getAccountGroupName() {
                return accountGroupName;
        }
        public void setAccountGroupName(String accountGroupName) {
                this.accountGroupName = accountGroupName;
        }
        public String getAccountGroupDescription() {
                return accountGroupDescription;
        }
        public void setAccountGroupDescription(String
accountGroupDescription) {
                this.accountGroupDescription = accountGroupDescription;
        }
        public String getAccountNumber() {
                return accountNumber;
        }
        public void setAccountNumber(String accountNumber) {
                this.accountNumber = accountNumber;
        }
        public String getCcidInstallation() {
                return ccidInstallation;
        }
        public void setCcidInstallation(String ccidInstallation) {
                this.ccidInstallation = ccidInstallation;
        }
        public String getExncfInstallation() {
                return exncfInstallation;
        }
        public void setExncfInstallation(String exncfInstallation) {
                this.exncfInstallation = exncfInstallation;
        }
        public String getVendorPath() {
                return vendorPath;
        }
        public void setVendorPath(String vendorPath) {
                this.vendorPath = vendorPath;
        }
        public String getPrimaryVendor() {
                return primaryVendor;
        }
        public void setPrimaryVendor(String primaryVendor) {
                this.primaryVendor = primaryVendor;
        }
        public long getSeqNum() {
                return seqNum;
        }
        public void setSeqNum(long seqNum) {
                this.seqNum = seqNum;
        }
}



What do I have to do to get my thing working? If I remove the hashmap,
i am able to make calls across without any problems.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to