2010-10-12 7 views
5

Obecnie wdrażam wszystkie moje usługi sieciowe w "normalny" sposób ... to jest, tworzę plik WSDL w Eclipse, a następnie używam WSCF.blue (wizualne rozszerzenie studyjne), aby automatycznie generować niezbędny kod i jest to odpowiedź /żądanie. Miałem jednak nadzieję, że zamiast tego skorzystam z połączeń zwrotnych, dzięki czemu moje usługi staną się usługami typu "push".Oddzwonienie do WCF: czy jest zgodne z Javą?

Zanim przejdę do przerobienia mojej aplikacji, zastanawiałem się nad jej interoperacyjnością. Jeśli używam wywołań zwrotnych (WCF), czy mój klient Java nadal może z tego korzystać?

Aha, i naprawdę powinienem zapytać ... czy jest kompatybilny z więcej niż Java? Na wszelki wypadek ...

Odpowiedz

4

Nie. WSDualHttpBinding i CompositeDuplexBindingElement nie są zgodne z Java.

Edit:

Jak wskazano przez @ x0n oryginalnym poście mowa w moją odpowiedź nie jest w 100% poprawne. Istnieje stanowisko newer blog opisujące sposób osiągnięcia interoperacyjności. Jak rozumiem, podejście jest podobne do korzystania z usługi z odpowiedzią asynchroniczną skorelowaną poprzez adresowanie WS (WCF nie obsługuje tego modelu wymiany w normalnym przetwarzaniu). WsDualHttpBinding wykorzystuje pewne dodatkowe funkcje, takie jak WS-ReliableMessaging, a także sprawia, że ​​usługa jest pełna.

Nie jestem pewien, czy opisane podejście zadziała we wszystkich przypadkach, ponieważ nadal mówi o komunikatach jednokierunkowych, ale komunikacja dwustronna w WCF może wykorzystywać zarówno jednokierunkowe, jak i dwukierunkowe wzorce wymiany wiadomości zarówno w usłudze, jak i w oddzwanianiu kontrakty.

+0

Więc Java obsługuje tylko żądanie/odpowiedź? A może jest inny sposób? –

+0

Komunikacja dwustronna jest rozszerzeniem MS. Jest to sposób na przekierowanie wywołań między dwiema usługami sieciowymi wbudowanymi w .NET Framework. –

+3

Odnawianie starego pytania tutaj, ale w rzeczywistości wsdualhttpbinding _binding_ jest kompatybilny ze stosami Java (testowałem metro), ale część callbackcontract nie jest (deklaracja na servicecontract). Subtelna różnica. Możesz użyć tego wiązania, ale po stronie java musisz wykopać nagłówek odpowiedzi za pomocą instrukcji ws za pomocą funkcji obsługi komunikatów i wykonać na nim działanie. – x0n