04. december 2004 - 15:32Der er
20 kommentarer og 1 løsning
WebService underlig opførsel
Hej
Jeg har lavet en webservice i Java og deployer den igennem en Tomcat server. Jeg er nu stødt ind i et, synes jeg, underligt problem.
Problemet går ud på, at jeg skal have returneret et array af egne objekter. Dette fungerer fint, hvis det kun er arrayet jeg sender retur, men jeg har brug for at sende flere oplysninger med. Derfor wrapper jeg det ind i en simpel klasse, som har en reference til dette array, samt supplerende oplysninger i form af strings og integers. Når jeg returnere dette wrapper objekt og prøver at hente arrayet ud, er der kun ét element i arrayet - nemlig det sidst tilføjede. Hvordan kan det være???
Altså:
Kun array sendes retur - virker fint Wrapperobjekt indeholdende array - virker ikke
Det skal jeg ikke kunne svare på - hvad afgør det?
Her ses min wrapper klasse:
package webservice;
public class PraeparatInfoWrap { public PraeparatInfo[] preps; public String errorMsg; // Errormsg vil være sat i tilfælde af ingen varer / updates eller ugyldig login public long version; }
public class PraeparatInfo { // Præparat specifik oplysning public int id; public String name; public String description; public String unit; public double price;
public LeverandoerInfo leverandoer; public VaregruppeInfo varegruppe;
// Objekt state information public long version; public boolean deleted = false; }
Jeg troede, at så længe det bare var public variable, så kunne man sagtens bruge sådan en klasse i forbindelse med en webservice?
Jeg synes bare at have læst et sted, at man kun kunne sende klasser med public fields over en webservice. Det var godt nok C#, men gik ud fra at det var det samme i Java.
Jeg tror faktisk at det må være en fejl i Axis, men måske har de ikke testet kun public felter fordi man jo som oftest bruger private felter og public get og set.
Jeg ville bare alligevel encpasulate dem i properties.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.