[Webservice] Arraylist

0

Witam.
Piszę serwer oraz klienta, problem pojawił się gdy zwracam arraylist.
Serwer działa ok, jednak gdy odpalam klienta nie wywala błąd.

Proszę o pomoc.

Serwer:

    @WebMethod
    public ArrayList listaOsob() {
        ArrayList DB = new ArrayList();

        Osoba osoba1 = new Osoba();
        osoba1.imie = "Michal";
        osoba1.nazwizko = "XXX";
        DB.add(osoba1);

        Osoba osoba2 = new Osoba();
        osoba2.imie = "Tomasz";
        osoba2.nazwizko = "XXX";
        DB.add(osoba2);

        return DB;
    }

Klient:

package javaapplication15;

import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException;

public class Main {

    public static void main(String[] args) throws MalformedURLException, ParseException {
        URL url = new URL("http://localhost:8084/Zarzadzanie_osobami_WebSerwer/Serwer?wsdl");
        SerwerService ss = new SerwerService(url);
        Serwer sp = ss.getSerwerPort();

        sp.listaOsob();
        System.out.print(sp.listaOsob());

    }

}

Błąd:

Exception in thread "main" com.sun.xml.internal.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
        at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:283)
        at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180)
        at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
        at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
        at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
        at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
        at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
        at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
        at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
        at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
        at $Proxy30.listaOsob(Unknown Source)
        at javaapplication15.Main.main(Main.java:23)
Caused by: com.sun.xml.internal.ws.streaming.XMLStreamReaderException: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.wrapException(XMLStreamReaderUtil.java:256)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:84)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextContent(XMLStreamReaderUtil.java:99)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextElementContent(XMLStreamReaderUtil.java:89)
        at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:219)
        at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:292)
        at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
        at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278)
        ... 14 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
        at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:593)
        at com.sun.xml.internal.ws.util.xml.XMLStreamReaderFilter.next(XMLStreamReaderFilter.java:81)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:65)
        ... 20 more
Java Result: 1
 
0

http://download.oracle.com/javaee/1.4/tutorial/doc/JAXRPC4.html

Poza tym, dobra praktyka jest uzywanie typow generycznych (ang. generics) oraz definiowanie typow parametrow i zwracanych wartosci metod przy pomocy interfejsow (np. java.util.List, Map, Collection) zamiast konkretnych implementacji (ArrayList, HashMap, TreeSet).

1 użytkowników online, w tym zalogowanych: 0, gości: 1