2011-08-30 12 views
5

Muszę wywołać serwlet napisany w Javie z aplikacji WWW Clojure i nie rozumiem, jak to zrobić.czy można wywołać serwlet Java z ring/compojure?

Opracowując aplikację webową w Javie, musiałem opisać wszystkie mapowania w web.xml. W Compojure widzę, że muszę opisywać trasy. Czy mogę powiązać serwlet Java z jedną z takich tras?

Przepraszam, jeśli moje pytanie jest głupie, ale dużo szukałem i nie znalazłem odpowiedzi; Właśnie zaczynam rozwijać się w Internecie.

+0

Teraz szukam pakietów testowych dostarczonych przez Ring. Odkryłem, że Pierścień pozwala przekształcić swoje procedury obsługi w serwlety. Istnieje funkcja run-servlet, która faktycznie ma to, czego chcę - wywołuje serwlet skonstruowany z handler'a, wywołując jego metodę obsługi. Ale w tej chwili nie mogę powiedzieć, że wiem, jak go używać we właściwy sposób, ponieważ wciąż jest wiele do odkrycia i spróbowania. –

Odpowiedz

2

Dwa pomocnych wskazówek:

Jest to przykład, w jaki sposób wygenerować aplet Vaadin całkowicie z Clojure na github

A oto SO pytanie na how to map a java filter to routes

+0

Widziałem ten sam przykład dla Vaadin, gdzie klasa serwletu została zaimplementowana w Clojure z proxy. Działa doskonale i częściowo spełnia moje cele, ale w ogóle nie. Oglądałem pytanie o filtr serwletów. Rozwiązanie opiera się na poziomie kontenera serwletów. Nie pasuje do moich życzeń, ponieważ opiera się na poziomie kontenera serwletów, ale Ring zapewnia adapter tylko dla pomostu. Napraw mnie, jeśli się mylę. Muszę obsłużyć wszystkie mapowania dla obu rzeczy Java i Clojure przez Compojure/ring niezależnie od konkretnego kontenera serwletu. –

0

proponuję, jest tylko jeden sposób, radzić sobie z moimi zadaniami. Muszę ręcznie utworzyć serwlety Java w aplikacji internetowej Clojure i utworzyć ich parametry żądania i odpowiedzi. Test package dla biblioteki ring.util.servlet opisuje to podejście w szczegółach, ale w przypadku zmiany obsługi pierścienia w serwlet Java.

W przypadku wdrażania aplikacji Clojure i serwletów Java do kontenera serwletu nie ma potrzeby definiowania dodatkowych tras Compojure lub programów obsługi Pierścienia ścieżek mapowanych przez kontener.

Proszę mi powiedzieć, czy moje sugestie są nieprawidłowe.