2013-01-24 12 views
7

Tworzę aplikację, która polega w dużej mierze na dynamicznym tworzeniu/zarządzaniu różnymi zasobami, takimi jak kolejki JMS, punkty końcowe usługi sieci Web, połączenia jdbc ... Mam doświadczenie w środowisku Java EE i obecnie pracuję nad jboss 7 serwer jednak coraz trudniej kontrolować te rzeczy programowo. Najtrudniejszą rzeczą do kontrolowania wydają się być usługi sieciowe. Muszę być w stanie generować WSDL (i XSD) w locie, zarządzać punktami końcowymi, programami obsługi mydła itp., A system po prostu nie jest skonfigurowany, aby to zrobić.Sterowanie programowe serwerów aplikacji

Inne serwery aplikacji nie oferują tak naprawdę przełomowych rozwiązań, więc zastanawiam się, czy być może Java EE nie jest najlepszym rozwiązaniem tego konkretnego problemu?

Czy istnieje serwer aplikacji, który pozwala to zrobić? Czy istnieje inna technologia, która działa? Czy powinienem po prostu przetworzyć niestandardowe rozwiązanie integrujące wszystkie oddzielne moduły (np. Serwer jms, serwer WWW itp.)?

UPDATE

celu wyjaśnienia, najbardziej Java EE materiał przeprowadza się za pomocą mieszaniny z opisów i konfiguracji XML. To jednak zakłada, że ​​masz POJO i/lub jar/war/... na zasób.

Załóżmy, że mam bean bean @WebServiceProvider, który może być ponownie użyty dla wielu kombinacji wejścia/wyjścia (na przykład, ponieważ dynamicznie przekierowuje zawartość). Muszę być w stanie wdrożyć nową "instancję" dostawcy w locie. Oznacza to, że nie chcę duplikować kodu i ponownie wdrażać go, po prostu chcę wziąć ten jeden istniejący komponent bean w ścieżce klas i wdrożyć go kilka razy z różnymi ustawieniami konfiguracji. Oznacza to również, że muszę dynamicznie zarządzać WSDL. Końcowym wynikiem powinna być usługa sieciowa, która działa podobnie jak standardowa usługa sieciowa na serwerze aplikacji z niezbędnymi zintegrowanymi zabezpieczeniami, modułami obsługi mydła, ...

Wyobrażam sobie, że w pewnym momencie kodu serwera aplikacji musi być klasy "WebserviceManager", która ma metodę taką jak "createWebservice (...)", która jest faktycznie używana przez moduł wdrażania za każdym razem, gdy odkrywa adnotację webservice. Chcę dostępu do tej metody i podobnych metod tworzenia połączeń jdbc, kolejek jms, ...

+1

Wygląda na to, że trzeba się skupić na automatyzacji rozmieszczania: marionetce, szefie kuchni itp. Na mniejszą skalę niektóre z nich można osiągnąć za pomocą maven. – maksimov

+0

Niezupełnie samo narzędzie musi zarządzać wszystkimi różnymi aspektami, a nie polegać na zewnętrznych narzędziach i procedurach, aby coś uruchomić. – nablex

+0

Czy chcesz utworzyć te zasoby, gdy aplikacja działa lub jest wdrażana? – raffael

Odpowiedz

1

Możesz użyć OSGi do tego rodzaju scenariuszy. Jest idealny do szybkiego wdrażania modułów varios.

+0

OSGi zakłada, że ​​faktycznie mam moduł. Chodzi o to, aby tworzyć i zarządzać zasobami w locie, bez dostępności oznaczonego POJO. – nablex

+0

@ user1109519 Możesz samodzielnie zdefiniować Zasób API lub użyć istniejącego API, aby to zrobić. Nie zapominaj również, że adnotowane POJO są tylko skrótem, możesz uzyskać większą kontrolę, jeśli bezpośrednio używasz powiązanych API usług OSGi. –

+0

Możesz więc użyć programowego interfejsu OSGi do zarejestrowania usługi internetowej bez tworzenia fałszywych xml, pojo lub jakiegokolwiek artefaktu? Jeśli tak, czy możesz wskazać mi samouczek? Nigdy nie widziałem OSGi w taki sposób. – nablex