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