aruna
unread,Apr 9, 2009, 9:47:29 AM4/9/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Google Web Toolkit
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.