Avatar billede webcreator Nybegynder
17. marts 2006 - 17:56 Der er 12 kommentarer og
2 løsninger

Værktøj - SOAP i PHP

Hej Eksperter.

Jeg er ved at lave en simpel web-service i PHP, og ville i den forbindelse meget gerne have et værktøj der kunne genererer WSDL filen for mig. Jeg kunne forestille mig et værktøj hvor man kunne angive en række detaljer om sin server - fx metoder, adresse osv. - og så genereres dokumentet for en.

Nogen der kender til et sådan værktøj? Meget gerne til Linux hvis det er muligt.

På forhånd tak.
Avatar billede coderdk Praktikant
17. marts 2006 - 18:17 #1
Hvis det er til PHP5, så har jeg med succes brugt WebService Helper: http://www.jool.nl/new/2,download.html

Hvis du bruger den skal du lige udkommentere linje 75 i classes/soap/phpdocMethod.class.php (linjen med ksort)
Avatar billede webcreator Nybegynder
17. marts 2006 - 23:53 #2
Jeg har forsøgt mig med den. Selv dens egne eksempler fejler. Men det har måske noget med linie 75 at gøre?
Avatar billede webcreator Nybegynder
18. marts 2006 - 00:33 #3
Jeg har lige testet igen, og det var ikke tilfældet. Jeg har prøvet både WebService Helper, NuSoap og Pear Soap. Ingen af dem fungerer på mit setup (PHP 5.0.5 på Apache2).
Avatar billede coderdk Praktikant
18. marts 2006 - 01:22 #4
Hmm du må ha' gjort noget galt :) For den virker skam fint! Jeg bruger tilmed PHP 5.0.5-pl5 (gentoo)
Avatar billede coderdk Praktikant
18. marts 2006 - 01:23 #5
(Og jeg bruger også Apache 2)
Avatar billede webcreator Nybegynder
18. marts 2006 - 01:39 #6
Måske er det min opsætning. Jeg har sat den lidt strict op så alle fejl og warnings bliver detected, slået magic_quotes fra osv. Jeg er efterhånden desperat. Ingen, absolut igen af de eksempler der findes online, fungerer. Mange af dem er dog også fra før PHP5. Jeg kan fint få mine klienter til at virke - men mine servere fungerer ikke. Jeg får typisk serialiseringsfejl.
Avatar billede coderdk Praktikant
18. marts 2006 - 01:42 #7
Øh, ok, det lyder underligt. Hvordan ser denne fejl ud? Ved ikke lige om jeg kan hjælpe så, for det virkede bare hos mig :) NuSOAP virkede derimod ikke (så skulle jeg fjerne native SOAP i PHP5)...
Avatar billede webcreator Nybegynder
18. marts 2006 - 01:46 #8
Array ( [faultcode] => Server [faultactor] => [faultstring] => unable to serialize result [detail] => )

Det er typisk fejl som ovenstående. Men jeg har rent faktisk netop fået det til at virke. Jeg returnerede mine data som et objekt af en given type, som angivet i en tutorial. Men jeg havde ikke set at de havde angivet return-typen som string. Så da jeg returnerede mine egne data som en string, så fungerede det pludselig. Nøj en dejlig fornemmelse.
Avatar billede webcreator Nybegynder
18. marts 2006 - 01:47 #9
Så fejlen lå altså i den tutorial jeg fulgte. Jeg tror man dels skal være ret skeptisk når man læser den slags, og ikke bare æde eksemplerne råt, og samtidig være lidt mere vågen end jeg er nu :)
Avatar billede coderdk Praktikant
18. marts 2006 - 01:51 #10
heheh :) Godt - Den kan ellers godt håndtere at returnere komplekse typer...
Avatar billede webcreator Nybegynder
18. marts 2006 - 02:16 #11
Yeps, det er jeg klar over. Men det kræver naturligvis at jeg angiver klassen som return-type i WSDL definitionen :)

Hvad siger du til at vi deler points?
Avatar billede webcreator Nybegynder
18. marts 2006 - 02:17 #12
Hermed gjort. Sig til hvis du føler dig snydt :)
Avatar billede coderdk Praktikant
18. marts 2006 - 13:50 #13
Nej, point er bare for sjov - Så det er da ligemeget :) Tak!
Avatar billede webcreator Nybegynder
18. marts 2006 - 16:14 #14
:)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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