Probleme mit Axis2 und mehrdimensionalen Arrays

Kerwin

Erfahrenes Mitglied
Hallo,

ich will einen WebService machen, der ein multidimensionales Array (String[][] ) entgegen nimmt.
Nun baue ich mir zuerst den WebService, der dies als Übergabeparameter erwartet.
Java:
public class TestService {
	public String[][]  GETTEST(int sessionid, String[][] teststring){
		String[][] abc = new String[2][2];
		abc[0][0] = "a";
		abc[0][1] = "b";
		abc[1][0] = "d";
		abc[1][1] = "c";
		return abc;
	}
}

Danach gehe ich auf die axis2 seite um automatisch die WSDL-Datei zu erzeugen. Diese nehme ich dann und mache mit WSDL2JAVA die Stubs etc.
Anschließend will ich den Service einbinden mit folgendem Code:
Java:
try {
			ProblemServiceStub stub = new ProblemServiceStub();
			GETTEST gt = new GETTEST();
			gt.setSessionid(1);
			
			String[][] abc = new String[2][2];
			
			abc[0][0] = "a";
			abc[0][1] = "b";
			abc[1][0] = "d";
			abc[1][1] = "c";
			
			gt.setTeststring(); // <<---- hier muss das multi Array rein
			GETTESTResponse res = stub.GETTEST(gt);
			
			res.get_return();
			
		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
Will ich gt.setTestring mein abc[ ][ ] reinpacken, so meldet eclipse, dass er nur ein eindimensionales Array will.


Gleiches Problem habe ich mit der Serverseite. Wenn ich dort ein multidimensionales Array zurückgeben will, bekomme ich auf der Clientseite eine Exception das unerwartete Inhalte vorhanden sind. Schau ich mir das Log auf TCPMON an, sieht man auch ganz deutlich folgende Strukur:
Code:
<response>
  <item:0>a<item:0>
  <item:0>b<item:0>
  <item:1>c<item:1>
  <item:1>d<item:1>

Nutze ich hingegen nur normale eindimensionale Arrays, funktioniert alles wunderbar.
Weiß vielleicht jemand, was ich falsch mache?
 
Zurück