Wypowiedzi
-
Może jeszcze o tym nie jest głośno ale na listach dyskusyjnych flexa wyszło niejawnie że Adobe rozpoczął pracę nad Actionscript 4. Najważniejsze zmiany to:
- rezygnacja z displaylisty która jest takim molochem że uniemożliwia wplecenie GPU do całości procesu renderingu, wszystko ma być bazujące na architekturze Stage3d i w całości bazować na GPU
- jakieś featury uzgadnianie głównie z branża gamingową
Oczywiście dotychczas kompilowane projekty pod actionscript3 beda dzialac na nowych FP, Ale jeżeli ktoś będzie chciał pisać w AS4 nie będzie miał dostępu do displaylisty (uruchamianie na AVM3) a będzie korzystał z Stage3d. POnieważ stage 3d to dosyć niskopoziomwe rozwiązanie ciekawe czy wproadzają jakąś warstwę wyższej abstrackcji (ala starling) do FP. -
Proponowałbym Ci jednak trzymać adresy w albo w xhtml (outcome o ile oczywiście można zastosować) lub w managed bean (według mnie wygodniejsze i łatwiejsze do ogarnięcia o ile projekt nie ma specjalnych wymagań) i chcesz po zapisaniu formularza (poprawnym czyli po przejściu walidacji) przekierować na nową stronę to:
używasz np. commandButton i atrybutu action (a nie listener, listener używasz do specjalnych potrzeb i raczej gdy NIE chcesz po wywolaniu metody na beanie przekierować, możesz oczywiście stosować i listener i action, wtedy listener będzie wywołany wcześniej).
Zmieniasz metodę save na
public String save(){
/// wykonaujesz operacje biznesowe, zapisanie modelu do bazy danych itp.
/// jeżeli chcesz przekieorwać użytkownika po zapisie udanym dodajesz tzw. flash messages które będa widoczne nawet jeżeli linijke niżej używasz faces-redirect=true czyli de fakto przekireowujesz widok na nowy url (oczywiśćie na nowym urlu musisz mieć obiekt messages w kodzie xhtml zaszyty)
/// robisz return "nowyurl?faces-redirect=true";
} -
zakładając że masz jsf 2.0 i wyżej (jeżeli zaczynacie nowy projekt to się w ogóle nie zastanawiajcie czy robić to w jsf 1.x i 2.x, rożnice w produktywności / elastyczności są bardzo duże):
1. poczytaj o atrybucie action i outcome w jsf, mają inne zastosowania oba służą do nawigacji w ramach JSF
2. poczytaj o parametrze faces-redirect=true w urlu docelowym i jak wpływa na widok od strony usera oraz na messages, i co trzeba zrobić żeby zobaczyć message przy użyciu przekierowania
3. jeżeli używasz action (vs outcome) to sprawdz jak się zachowa aplikacja gdy metoda managed beana zadeklarowana w action ma typ zwrotny String a jak się zachowa apka gdy jest void
Generalnie w jsf 2.0 faces-config umieszcza się (a przynajmniej warto umieszczać):
- tylko te elementy które nie można zadeklarować adnotacjami które doszły JSF 2.0 (np. listenery cyklu życia, globalne exception handlery)
- elementy które dla zachowania DRY warto umieścić centralnie zamiast w każdym beanie (i18n)
walidatory, managed beany, konwertery można adnotacjami załatwiać i moim zdaniem to preferowana metoda z punktu widzenia przejrzystości projektu. Nawigacja już jest rzeczą względną i myślę że trzeba to rozważać per projekt czy użyte ma być sterowanie centralne czy też rozproszone. -
jesteś pewien że flex sdk umożliwia kompilację AS2, bo flash 8 raczej AVM as3 nie ma ;), chyba że masz jakiegoś prehistorycznego Flex sdk chyba jeszcze z czasów macromedii.
-
Panowie trzymajcie się wątku lub załóżcie nowy
-
flash builder 4.5 -> wersja FP 10.0
prawy przycisk myszy -> wprowadzony od wersji FP 11.2
Zawsze sprawdzaj flex sdk wersja vs sdk zawierający feature. -
1. pamietaj że binding jest mocno nieefektywny (zakulisowo tworzy event listenery itp.) więc stosowanie tego na dużą skalę może być obciążające
2. w actionscript jest pojęcie "uchwytu do funkcji" wiec możesz normalnie przekazywać jak wartość zmiennej, -
Czysto teoretycznie to przypomina to w działaniu JPA w JSE, idąc tym tropem dalej to po prostu application managed entity manager (factory).
Stworzenie PersistenceContext może nastąpić przez ręczne wywołanie:
http://docs.oracle.com/javaee/5/api/javax/persistence/..., java.util.Map)
czyli można z tego wnioskowac ze:
- nie potrzebny jest persistence.xml żeby stworzyć EntityManagerFactory a w konsekwencji EntityManager
- można to robić w dowolnym czasie życia aplikacji i utworzenie konfiguracji nie jest wymuszone na startapie apki.
- ciekawe jest tylko jak będzie wyglądał URL połączenia do bazy danych, ale zakładam ze jeżeli jesteś w stanie się podpiąć w tych warunkach przez JDBC to też jesteś w stanie się wpiąć przez JPA
- nie wiem czy nie bedzie jakiś problemów ze znalezieniem encji dla danego typu w przypadku uzycia jakiś mechanizm autoprzeszukujących classpath danego dostawcy, ale w razie problemów pewnie zawsze można samodzielnie zapodać nazwy encji.
więc w skrócie: teoretycznie się wydaje to możliwe -
1. Jeżeli robisz ws ktore będzie miało rozbudowane APi i zależy Ci na: generowaniu stubów i będzie się integrowało szczególnie z rozwiąaniami Microsoftu wybierz JAX-WS, w pozostałych przypadkach wybierz znacznie lżejszy (szczególnie w wersji JSON) JAX-RS.
2. Tutorial JAX-WS przykladowy
http://java.dzone.com/articles/jax-ws-hello-world
3. Tutorial JAX-RS przykladowy
http://www.vogella.com/articles/REST/article.html -
A co stoi na przeszkodzie żeby metoda miała parametr typu List<MojDTO>? zarówno w JAX-RS jak i w JAX-WS nie powinno być to przeszkoda.
-
przekazywanie nazwy metody przez ws która bedzie wykonana przez refleksje po stronie ws to dosyć poważna luka bezpieczenstwa per design. Jeżeli już koniecznie musisz tak robić to chociaż przekazuj jakąś stałą weryfikowaną po stronie metody ws czy znajduje się w zbiorze dopuszczalnym zamkniętnym.
-
przecież INFO jest poniżej WARN, RTFM
-
sprawdz:
log4j.appender.CUBRID.Threshold=WARN -
spróbuj inny wmmode, ogólnie w kwestii polskich ogonków jest dużo cudów w technologiach pluginów innych niż ActiveX (MSIE). Podobne fenomeny są przy korzystaniu z Ctr-C itp. Niestety to są błędy regresji powracająca co jakiś czas raz do Chrome, raz do FF i wnioskuje po tym "powracaniu" że ani Chrome ani FF nie mają do tego testów regresyjnych i jest to coś specyficznego dla komunikatu przeglądarka -> plugin.
-
remote object jest asynchronous komunikacją tak jak wszystkie IO w actionscript / flex / flash.
Korzystasz z tego w zły sposób, hint: http://help.adobe.com/en_US/FlashPlatform/reference/ac... -
A można coś więcej co to znaczy webowa aplikacja? Z opisu troche bardziej wynika ze to instalacja za pomocą Java Web Start? czy tak? Pytanie czy jest to podpisana prawidłowo aplikacja rozpoznawana przez Javę jako "secured" czy też nie. Jaka przeglądarka jaki OS? Jaka wersja Javy, czy JRE, czy JDK? Czy jest pewność że aplikacja jest ściągana (odpalić nasluchiwanie http i będzie widać co jest ściągane i w jakiej kolejności).
-
1. PersistenceUnit jest nadrzędny w stosunku do EntityManagerFactory (z którego są tworzone EntityManagery) więc ustawienia wyboru persistence unita szukałbym w miejscu tworzenia (fabrykowania) EntityManagerFactory. Gdybyś miał wstrzyknięcia EntityManagera za pomocą adnotacji persistenceContext mógłbyś to umieścić w adnotacji ale to nie o to chodzi bo wymaga wtedy zmiany rekompilacyjnej. Pobieżnie googlając wychodzi mi że wybór persistence context dokonuje się w springu np. konfigurując
org.springframework.orm.jpa.LocalEntityManagerFactoryBean
2. jeżeli jedyne czym różnią się te persistence.xml to dane dostępu to powinno być to skonfigurowane po prostu przez datasource z innymi danymi na srodowisku produkcyjnym i testowym, po to włąsnie wymyślono koncepcję datasource. -
tutaj bardziej chodzi nie o compile time sharing ale runtime sharing o ile dobrze rozumiem. Czyli w grę wchodzą Flex modules. Osobiście po kilku podejściach z większą aplikacją daliśmy sobie spokój z modułami we flexie na rzecz monolitycznej aplikacji, aplikacja urosła do 1,5Mb ale konstrukcja wewnętrzna znacznie się uprościła pod tym względem. Jeżeli to aplikacja biznesowa i serwowana ograniczonej grupie klientów to korzyść z 1MB mniej do ściągnięcia jest znacznie mniejszy niż poziom skomplikowania kodu który za sobą pociąga korzystanie z modułów. W naszym projekcie zbyt dużo się pojawiło cross referencji. Flex modules można rozpatrzyć jeżeli uda się podzielić aplikacje na 100% wyizolowane moduły, a wszystkie współdzielone elementy są trzymane w głównym (startowym) swfie. Dodatkowo są pewne nieoptymalności związane z użyciem modułów we flexie 4 (kwestie zwiazane ze stylami u utrzymywaniem z tego co pamietam oddzielnych kolekcji w pamieci styli css aplikowanych klasom wizualnym).
-
może nie bezpośrednio odpowiedz na Twoje pytanie, ale do podobnych celów polecam książkę:
http://www.amazon.com/Working-Effectively-Legacy-Micha... -
Napisałeś: cytat: "Aplikacja bazuje na kontenerze Tomcat6, Spring." nie ma tutaj słowa o tym że ma wykorzystywać mechanizmy konfiguracji dostarczane przez springa. Dostałeś odpowiedz spełniającą kryteria które napisałeś, umożliwia uruchamianie min. aplikacji bazujących na Tomcat6, Spring.
Jeżeli korzystasz z JPA to lokalizacja pliku persistence.xml jest spisana w specyfikacji JPA i od niej zależy np. zasięg persistence unita i przeszukiwanie classpatha w poszukiwaniu entities i wiec zmiana persistence.xml runtime jest troche sprzeczna z zalożeniami JPA by design.