Tworzę usługę RESTful Web Service, która otacza przestarzały API dostawcy. Niektóre zewnętrzne konfiguracje będą wymagane i będą przechowywane na serwerze w pliku lub rdbms. Używam oprogramowania Jersey 1.11.1 w programie Glassfish 3.1.2. Te dane konfiguracyjne są w formacie klucza/wartości String.Jak ładować i przechowywać globalne zmienne w Jersey/Glassfish
Moje pierwsze pytanie brzmi: gdzie mogę przechowywać zmienne globalne/instancje w Jersey, aby były one przechowywane między żądaniami i dostępne dla wszystkich zasobów? Gdyby to była czysta aplikacja Serwletu, użyłbym ServletContext, aby to osiągnąć.
Druga część pytania brzmi, w jaki sposób mogę załadować konfigurację po załadowaniu serwera Jersey? Znowu moja analogia z Servletem będzie znaleźć odpowiednik metody init().
To wygląda na świetne rozwiązanie i działa poprawnie w czasie ładowania, ale otrzymuję wyjątek InvocationTargetException (wyświetlany przez kontener jako obiekt NullPointerException), gdy próbuję odwołać się do tego komponentu EJB w moich klasach zasobów. – Graham
Z listy mailingowej w Jersey: _By domyślny wtrysk zasobów EE nie jest obsługiwany, chyba że zmienisz zasób w zarządzany komponent bean (i zauważ, że istnieją pewne ograniczenia podczas przekształcania klasy zasobów w zarządzany komponent bean) ._ – Graham
Po dodaniu @Stateless flag to my resources to działało idealnie i jest zdecydowanie doskonałym rozwiązaniem. Te dwie strony pomogły mi też lepiej zrozumieć pojęcia: [EJB 3.1 AND REST - LEKKIE HYBRYD] (http://www.adam-bien.com/roller/abien/entry/ejb_3_1_and_rest) [Singletons] (https : //blogs.oracle.com/kensaks/entry/singletons) – Graham