15. december 2003 - 21:02Der er
19 kommentarer og 1 løsning
Serialisering af objekter til brug for SOAP
Jeg har en klasse som i en vector skal sendes til en klient via SOAP, men jeg kan ikke umiddelbart få den serialiseret til det. Klassen indeholder samtidigt en vector af objekter af en anden klasse som vel også skal serialiseres ??? Hvordan gør jeg det nemmest ?
Du kan godt serialisere en java.util.Vector ifølge JAX-RPC standarden, men det er ikke anbefalelsesværdigt, da den ikke er portabel til andre programemrings sprog.
Et normalt array af objekter er portabelt (hvis objekterne er).
Jeg ved godt at et array er, men når nu ikke størrelsen kende i forvejen hvad gør man så ?? Og når nu mit objekt indeholder et ubekendt antal styk af et andet objekt.....og desuden brokker den sig over min Disc klasse - vil det ændre sig hvis jeg opretter en array af objekter af denne klasse ???
Call failed due to a SOAP Fault: Fault code = SOAP-ENV:Server Fault string = java.lang.IllegalArgumentException: No Serializer found to serialize a 'edu.dmu.mult3004.cd.Disc' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'. [Attributes={}] [faultCode=SOAP-ENV:Server] [faultString=java.lang.IllegalArgumentException: No Serializer found to serialize a 'edu.dmu.mult3004.cd.Disc' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.] [faultActorURI=/soap/servlet/rpcrouter] [DetailEntries=] [FaultEntries=]
public Vector getCD(String ID) throws SOAPException{ DataConnect dc = new DataConnect(); cd = dc.getCD(ID); //returnerer en Vector af Disc return cd; }
public Vector getCD(String ID) throws SOAPException{ DataConnect dc = new DataConnect(); cd = dc.getCD(ID); //returnerer en Vector af Disc return cd.toArray(); //Sådan ??? }
Er det sådan den laves om til array - virker lidt for nemt.
public Track[] getCD(String ID) throws SOAPException { DataConnect dc = new DataConnect(); Vector v = dc.getCD(ID); Track[] all = new Track[cd.size()]; for(int i = 0; i < all.length; i++) all[i] = cd.get(i); return all; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.