AW: Trouble with serializing HashMaps (ADDITION)

"Malte Kempff" <[email protected]>
Newsgroups gmane.text.xml.soap.user
Message-ID <[email protected]>
Hi Scott,
I found a Entry in the SOAP-Docs saying it supports ...
java.util.HashMap (under Java editions in which this is supported)


since we are using Java Runtime 1.4.X I don't understand that if serialize
HashMaps in a Vector, -this time without having null values-,

following Exception occures:

SOAP-RPC-Fehler:

SOAP-RPC:[Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=Exception
from service object: java.util.HashMap]
[faultActorURI=/soap/servlet/rpcrouter] [DetailEntries=

[(0)=<stackTrace>java.lang.ClassCastException: java.util.HashMap
...

I think it has something to do with the trial of soap 2.3.1 to use a
HashTable as Map-Serializer instead of a HashMap, could that be?

many thanks in advance



Malte


-----Ursprüngliche Nachricht-----
Von: Malte Kempff [mailto:[email protected]]
Gesendet: Freitag, 22. Oktober 2004 16:17
An: [email protected]
Betreff: Trouble with serializing HashMaps



Hi Scott,
I've got following trouble I am using Apache SOAP as RPC
now I tried to give my serverroutine Maps in Vectors
I am getting a Nullpointexception, because I am using HashMaps which allow
null-values
in the Map serializier a HashTable is used which does not allow null-values.
What is the reason a HashTable is performing for Maps an not a HashMap?
If a Map is used, which does not allow null-values the client will allready
know that while filling it with entries. So I believe it does not need to be
so restrictive.
Since passing a Map is really a standard I don't prefer writing a new
serializer/deserializer on my own.

My Exception is the following:

java.lang.NullPointerException  at
java.util.Hashtable.put(Hashtable.java:393)     at
java.util.Hashtable.putAll(Hashtable.java:467)  at
org.apache.soap.encoding.soapenc.MapSerializer.marshall(Unknown Source)
at
org.apache.soap.util.xml.XMLJavaMappingRegistry.marshall(Unknown Source)
at
org.apache.soap.encoding.soapenc.VectorSerializer.marshall(Unknown Source)
at org.apache.soap.encoding.soapenc.ParameterSerializer.marshall(Unknown
Source)         at org.apache.soap.rpc.RPCMessage.serializeParams(Unknown
Source)
at org.apache.soap.rpc.RPCMessage.marshall(Unknown Source)      at
org.apache.soap.Body.marshall(Unknown Source)   at
org.apache.soap.Envelope.marshall(Unknown Source)       at
org.apache.soap.transport.http.SOAPHTTPConnection.send(Unknown Source)  at
org.apache.soap.rpc.Call.invoke(Unknown Source)         at
org.apache.soap.rpc.Call.invoke(Unknown Source)         at
de.mc.etnbestterm.data.SoapCallingDataHolder.callSoaply(SoapCallingDataHolde
r.java:93)      at
de.mc.etnbestterm.data.OrderDataHolder.orderArtikelsInBasket(OrderDataHolder
.java:2047)     at
de.mc.etnbestterm.gui.WKBestellungsPanel.sendAnforderung(WKBestellungsPanel.
java:324)       at
de.mc.etnbestterm.gui.WKBestellungsPanel.m_artikelSpecialButton_actionPerfor
med(WKBestellungsPanel.java:225)        at
de.mc.etnbestterm.gui.BasketPanel$4.actionPerformed(BasketPanel.java:104)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
n.java:1839)    at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:4
20)     at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)  at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener
.java:245)      at java.awt.Component.processMouseEvent(Component.java:5100)
at
java.awt.Component.processEvent(Component.java:4897)    at
java.awt.Container.processEvent(Container.java:1569)    at
java.awt.Component.dispatchEventImpl(Component.java:3615)       at
java.awt.Container.dispatchEventImpl(Container.java:1627)       at
java.awt.Component.dispatchEvent(Component.java:3477)   at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)  at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)   at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)       at
java.awt.Container.dispatchEventImpl(Container.java:1613)       at
java.awt.Window.dispatchEventImpl(Window.java:1606)     at
java.awt.Component.dispatchEvent(Component.java:3477)   at
java.awt.EventQueue.dispatchEvent(EventQueue.java:456)  at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)         at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)   at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)   at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)   at
java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

____________
Virus checked by G DATA AntiVirusKit
Version: AVK 15.0.448 from 13.10.2004
Virus news: www.antiviruslab.com




____________
Virus checked by G DATA AntiVirusKit
Version: AVK 15.0.448 from 13.10.2004
Virus news: www.antiviruslab.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.