Potrzebuję sposobu na uzyskanie aktywnego adresu serwera, portu i kontekstu podczas uruchamiania z mojej aplikacji Flex. Ponieważ używamy mrówki dla naszego procesu budowania, informacje o połączeniu serwera są dynamicznie określane w naszym pliku właściwości kompilacji, a symbole zastępcze {server.name}, {server.port} i {context.root} są używane w services-config .xml zamiast rzeczywistych wartości.Jak uzyskać punkt końcowy serwera w uruchomionej aplikacji Flex?
Mamy kilka innych serwletów Javy działających na tym samym komputerze, co nasz serwer blazeDS, i chciałbym w jakiś sposób programowo określić informacje o punktach końcowych serwera, więc nie będę musiał kodować adresu URL serwletu w pliku XML (właśnie to robimy).
Odkryłem, że mogę przynajmniej dostać korzeń kontekstowego poprzez dodanie następujących do naszego głównego pliku MXML aplikacji:
<mx:Application ... >
<mx:HTTPService id="contextRoot" rootURL="@ContextRoot()"/>
</mx:Application>
Jednak nadal muszę jakiś sposób pobierania adresu serwera i port, a jeśli podam cały adres przez podanie -context-root = http://myserver.com:8080/mycontext, wówczas aplikacja elastyczna spróbuje połączyć się z http://localhost/http://myserver.com:8080/mycontext/messagebroker/amf, co jest oczywiście całkowicie błędne. Jaki jest właściwy sposób określenia kontekstowego katalogu głównego i adresu URL serwera oraz w jaki sposób mogę je pobrać z naszej aplikacji?
Czy używasz serwletów Java lub tylko usługi http? Nie jestem pewien, czy dokładnie podążam za twoim pytaniem, czy też dokładnie to, co robisz, ale przy zdalnym obiekcie, możesz zrobić to wszystko w kodzie, zamiast używać pliku services-config.xml lub umieścić go w opcjach kompilatora. Czy możesz rozwinąć? –
Korzystamy z obu. Mamy punkt końcowy HTTP i oddzielne serwlety Java dla niektórych dodatkowych zadań. Nie * używamy * zdalnych obiektów; cała obsługa wiadomości odbywa się przez Cairngorm. –