Avatar billede gedebuk Nybegynder
19. november 2004 - 14:56 Der er 8 kommentarer og
1 løsning

Webservice-callback

Hej.

Jeg har en webservice implementeret i Java (vha. AXIS) og en klient skrevet i C#.
Kan man fra C#-klienten "registrere" sig selv på Java-serveren, så denne kan kalde tilbage igen senere (altså lave callback)?

I AXIS findes interfacet org.apache.axis.encoding.Callback og i .NET er der System.AsyncCallback. Jeg ved ikke, om de kan bruges til at opnå det?

På forhånd tak,
Mads Pedersen
Avatar billede arne_v Ekspert
19. november 2004 - 15:15 #1
Forudsat at det er SOAP over HTTP, så kan det vel ikke lade sig gøre.

Du kan selvfølgelig godt køre 2 web applikationer som begge to exposer
en web service og kalder den andens web service.
Avatar billede gedebuk Nybegynder
19. november 2004 - 15:25 #2
Jep, det er SOAP over HTTP.

Jeg har også tænkt, at man kan lave to seperate web services, men jeg vil gerne have, at det er samme "instans" af C#-klienten, som Java-serveren skal kalde tilbage til.
Avatar billede arne_v Ekspert
19. november 2004 - 15:32 #3
Hvis C# koden er i IIS må det vel også kunne lade sig gøre.

Koden registrerer en reference til sig selv under et unikt id, dette ID
sendes med i kaldet til Java siden, Java siden kalder så tilbage
med det ID til en ASP.NET web service, der bruger id til at slå client
op og dispatcher til client.
Avatar billede gedebuk Nybegynder
19. november 2004 - 15:36 #4
Ja, noget i den retning.

Jeg er ikke sikker på, hvad du mener med "... en ASP.NET web service, der bruger id til at slå client op og dispatcher til client."
Hvordan kan man lave web servicen (i ASP.NET) i stand til at kalde C#-klienten?
Avatar billede arne_v Ekspert
19. november 2004 - 15:40 #5
Det nemmeste er hvis client også hostes i IIS/ASP.NET, så er det jo bare
et helt almindeligt kald.

Er det en windows GUI app, så er det straks lidt mere tricky.

C# win app---(SOAP/HTTP)--->Java Axis WS---(SOAP/HTTP)---C# ASP.NET WS---(remoting)--->C# win app

måske
Avatar billede gedebuk Nybegynder
19. november 2004 - 15:45 #6
Ja okay... Det er en Windows GUI. Jeg vil prøve at arbejde videre med det.

Nu vi er ved det, så har jeg faktisk et andet lignende spørgsmål. Jeg har en anden Java-klient, som kommunikerer med den samme omtalte Java-server. Det vil være lækkert, hvis den klient også kan "registrere" sig på serveren, så denne kan kalde tilbage til klienten. Er det samme problemstilling eller kan det nemmere lade sig gøre, når det er Java <--> Java (eller AXIS <--> AXIS)?
Avatar billede arne_v Ekspert
19. november 2004 - 15:53 #7
Jeg tror at det er samme problem stilling.

HTTP protokolen har simpelthen ikke callback.

For Java-Java kan du erstatte web servive med RMI og RMI har
rigtigt callback.
Avatar billede gedebuk Nybegynder
19. november 2004 - 15:55 #8
Okay, du får tak for inspiration, idéer og afklaringer.

Smid et svar og du skal få dine points ;)
Avatar billede arne_v Ekspert
19. november 2004 - 15:57 #9
svar
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