Try explicitly converting your XmlSerializable[] to an Element[], and then call producer.publish(QName,Element[]). See if that makes a difference?
-----Original Message----- From: Bogdan Solomon [mailto:[EMAIL PROTECTED] Sent: Thursday, August 16, 2007 7:23 AM To: [email protected] Subject: Array serialization problem in notifications I think the problem is in my serialization code but I just can't figured out what it is. I am trying to send via notifications an array of custom objects which implement XmlSerializable. I logged some messages and I see that all the objects in the array get serialized (the toXml() method is called for each of them), but the final notification only contains the last element in the array. Here is the notification code (the data structure is an ArrayList): QName messageName = new QName("http://autonomic.ibm.com/muse/sensor/execution/Topics", "MeasuredDataTopic", "topics1"); wsn.publish(messageName, data.toArray(new DataInterface[0])); and here is the serialization code: public Element toXML() { System.out.println("Serializing:"+name); Element root = XmlUtils.createElement(XmlUtils.EMPTY_DOC,rootQName); //Element root = XmlUtils.createElement(rootQName); Element name = XmlUtils.createElement(nameQName, getName()); Element dataValue = XmlUtils.createElement(dataValueQName,getDataValue()); Element desc = XmlUtils.createElement(descQName,getDescription()); Element valueType = XmlUtils.createElement(valueTypeQName,getDataType()); root.appendChild(name); root.appendChild(dataValue); root.appendChild(desc); root.appendChild(valueType); return root; } The resulting Notification looks as follows: <soap:Body> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"> <wsnt:NotificationMessage xmlns:muse-wsa="http://ws.apache.org/muse/addressing" xmlns:sensor="http://autonomic.ibm.com/muse/filter/execution" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"> <wsnt:SubscriptionReference> <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing">http://192.168.32.23:90 81/AutonomicSensor/services/SubscriptionManager</wsa:Address> <wsa:ReferenceParameters xmlns:wsa="http://www.w3.org/2005/08/addressing"> <muse-wsa:ResourceId xmlns:muse-wsa="http://ws.apache.org/muse/addressing">MuseResource-1</mu se-wsa:ResourceId> </wsa:ReferenceParameters> </wsnt:SubscriptionReference> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete" xmlns:topics1="http://autonomic.ibm.com/muse/sensor/execution/Topics">to pics1:MeasuredDataTopic</wsnt:Topic> <wsnt:ProducerReference> <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing">http://192.168.32.23:90 81/AutonomicSensor/services/sensor</wsa:Address> <wsa:ReferenceParameters xmlns:wsa="http://www.w3.org/2005/08/addressing"> <muse-wsa:ResourceId xmlns:muse-wsa="http://ws.apache.org/muse/addressing">MuseResource-13</m use-wsa:ResourceId> </wsa:ReferenceParameters> </wsnt:ProducerReference> <wsnt:Message> <sensor:FilteredData xmlns:sensor="http://autonomic.ibm.com/muse/filter/execution"> <sensor:name>TradeScenarioServlet-ServiceTime-TotalTime</sensor:name> <sensor:dataValue>0</sensor:dataValue> <sensor:description/> <sensor:valueType>Long</sensor:valueType> </sensor:FilteredData> </wsnt:Message> </wsnt:NotificationMessage> </wsnt:Notify> </soap:Body> But my message should contain 7 FilteredData structures as I have 7 DataInterface objects. -- View this message in context: http://www.nabble.com/Array-serialization-problem-in-notifications-tf427 9966.html#a12182356 Sent from the Muse User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
