Avatar billede -master-d- Nybegynder
01. april 2009 - 15:06 Der er 1 løsning

Java webservice annotations

Hej,

Jeg sidder med et problem angående at mine typer ikke bliver sendt med i min SOAP respons. Jeg benytter mig af en JBoss applikationsserver og Java med annotations.

Her lidt kode at kigge på:

public class WebServiceSkeleton implements WebServiceSkeletonRemote {

....

    @WebMethod
    @WebResult(name="PointOfInterest")
    public Collection<PointOfInterest> getPOIs()
    {     
        Collection<PointOfInterest> poiList = new Collection<PointOfInterest>();
       
        PointOfInterest p1 = new PointOfInterest();
        p1.setDescription("Test1");
       
        PointOfInterest p2 = new PointOfInterest();
        p2.setDescription("Test1");
       
        poiList.add(p1);
        poiList.add(p2);
       
        return poiList;
    }
}

Alle typer osv. bliver nævnt i wsdl filen, men kommer altså ikke med når jeg laver en request.

Sådan ser min soap respons ud:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Header/>
  <env:Body>
      <ns2:getPOIsResponse xmlns:ns2="http://communication.server.pms/">
        <PointOfInterest>
            <entries xsi:type="pointOfInterest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <description>Test1</description>
              <id>0</id>
            </entries>
            <entries xsi:type="pointOfInterest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <description>Test2</description>
              <id>0</id>
            </entries>
        </PointOfInterest>
      </ns2:getPOIsResponse>
  </env:Body>
</env:Envelope>

Er der andre som har siddet med lignende problemer med annotations?? Jeg kan selvfølgelig godt lave et work around på en eller anden måde, men det har jeg ikke den store lyst til her.

På forhånd tak
Avatar billede -master-d- Nybegynder
06. april 2009 - 23:58 #1
Der er vel en årsag til at denne ikke blev besvaret, dog har jeg selv løst problemet imellemtiden.

Der er sådan set ikke noget galt i at der ikke optræder xsi:type på alle XmlNoder i SoapResponsen. Det er noget som hører fortiden til og dengang man brugte RPC/ENCODED som encoding stil. Idag mest pga. den ringe implementering af SOAP standarden i .NET web services, bruger man hovedsagligt DOCUMENT/LITERAL.

Så mit problem lå faktisk slet ikke på serveren, men på min J2ME client med kSoap2. Problemet viste sig at have med deserialisering at gøre, det er nu løst ved at lave et ordentligt service lag, som tager sig af dette.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester