Avatar billede Bombeharry Nybegynder
21. november 2013 - 03:14 Der er 3 kommentarer

Kald af webservice og brug af JAXB

Jeg skal kalde en webservice hvor WSDL'en indeholder en "anyType" type. Jeg skal kalde denne webservice programmelt fra en klient som jeg har genereret i Java. I den genererede klient er anyType selvfølgelig blevet til typen "Object".

Det data der kan være i "anyType" typen har jeg en XSD fil (Lad os kalde denne klasse Person) på og har vha. JAXB fået genereret de tilsvarende javaklasser fra XSD'en.

Så til webservicen har jeg en datastruktur som ligner noget ala
----
String someID;
Object data;
----

Hvor data er en java klasse kaldet "Person" som matcher en XSD.

Når jeg fyrer et request afsted, får jeg dog en fejl om, at JAXB ikke kender til dette Person objekt og mit request bliver aldrig sendt afsted.

Så mit spørgsmål: Hvordan får jeg tilføjet Person klassen til JAXB konteksten for selve webservice klienten? Eller kan jeg på en eller anden måde lavet noget marshalling inden jeg sætter data-variablen så min web service klient forstår det?

Beklager hvis det er kringlet formuleret - det er sent :)
Avatar billede arne_v Ekspert
21. november 2013 - 03:16 #1
Er der mulighed for at give os adgang til WSDL og XSD?
Avatar billede Bombeharry Nybegynder
21. november 2013 - 10:47 #2
https://dl.dropboxusercontent.com/u/10759510/Eksperten/filer.zip

Kan hentes ovenfor. DeathDetails.xsd er det "AnyType" objekt jeg snakker om. Resten er standard Oracle services.
Avatar billede Bombeharry Nybegynder
26. november 2013 - 11:40 #3
Hjalp filerne noget?
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