czwartek, listopada 6

szacowanie projektu - Był sobie król

chciałbym wam polecić pewien artykuł Był sobie król;

miłego czytania;

po przeczytaniu artykułu zrozumiecie zdanie:
nieraz te baba jagi dają w łapę :P

IoC, a prelekcja Sławka

witam;

no to jesteśmy po spotkaniu Lublin JUG które to odbyło się 4 listopada 2008 w godzinach 18-20; jak zwykle Sławek Sobótka w swój unikalny i porywający sposób wygłosił prelekcję pod tytułem: 'IoC/Dependency Injection na przykładzie Spring';
nie będę się rozpisywał na temat prelekcji, jeżeli chcecie się dowiedzieć coś więcej to odsyłam na blog autora art-of-software.blogspot.com, obiecał on umieścić małe streszczenie prelekcji; slajdy oraz kod z prezentacji można znaleźć na stronie LJUG;


ps. w momencie pisania posta streszczenia nie było, ale znając Sławka w najbliższym czasie powinno się pojawić;

środa, listopada 5

JSF po raz pierwszy

witam; udało się uruchomić aplikację jsf + maven + tomcat; budując aplikacje standalone i pracując z spring i paroma innymi framework'ami nadeszła pora na poznanie technologii webowych;

od czego by ty wystartować...
instalacja frameworków:
  • maven - najlepiej jest to opisane na oficjalnej stronie projektu
  • tomcat - tu podobnie jak wcześniej oficjalna strona jest jednym z najlepszych źródeł informacji

no to startujemy; tworzymy projekt z archetypu softeu-archetype-jsf lekko, modyfikowałem go do postaci:



by uruchomić bardzo prosty przykład należy stworzyć kilka plików; w niniejszym poście opiszę tylko znaczące elementy plików;

web.xml, zwany też plikiem konfiguracyjnym vel deskryptor wdrożenia:

<web-app>
<servlet>
  <servlet-name>Serwlet JavaServer Faces</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>Serwlet JavaServer Faces</servlet-name>
  <url-pattern>*.faces</url-pattern>
</servlet-mapping>

<listener>
  <listener-class>com.sun.faces.config.GlassFishConfigureListener</listener-class>
</listener>

<welcome-file-list>
  <welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>


jednym z ciekawszych elementów w pliku jest servlet-mapping, zawiera on informację o mapowaniu adresów, strony JSF są przetwarzane przez specjalny serwlet, aby zapewnić poprawne aktywowanie tego serwletu w momencie żądania strony JSF; tomcat musi wiedzieć które to strony są JSF, w konfigruacji adresy będą się kończyły rozszerzeniem .faces;
parametr welcome-file-list zawiera informacje o tym jaka strona zostanie uruchomiona zaraz po tym jak zostanie wpisany adres projektu do przeglądarki;


plik faces-config.xml zawiera informacje konfiguracyjne dla części związanej z JSF;

<navigation-rule>
  <from-view-id>/index.jsp</from-view-id>
  <navigation-case>
    <from-outcome>login</from-outcome>
    <to-view-id>/login.jsp</to-view-id>
  </navigation-case>
</navigation-rule>

<managed-bean>
  <managed-bean-name>myClass</managed-bean-name>
  <managed-bean-class>pl.arekborek.MyClass</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
</managed-bean>


nic prostszego tag <navigation-rule> zawiera informacje na temat zasad nawigacji, czyli z jakiego widoku po spełnieniu warunku, gdzie zostanie przeniesiony użytkownik;
tag <managed-bean> zawiera informacje na temat beanów jakie będą widoczne w aplikacji; dla każdego trzeba określić zasięg, klasę oraz nazwę pod jaką będzie widziany; w JSF zdefiniowano następujące zasięgi widoczności request, session, application, none

pozostaje jeszcze kilka plików do opisania, ale zawartość ich nie jest zbyt interesująca; jeżeli kogoś interesował by cały działający przykład proszę się odezwać do mnie na mila;

poniedziałek, listopada 3

SEVERE: Error configuring application listener

witam, postanowiłem zgłębić wiedzę na temat aplikacji webowych, dlatego też zabrałem się za budowanie aplikacji w oparciu o Apache Maven + JSF (implementacja od SUN'a) + Seam a to miało się uruchomić na Apache Tomcat w wersji 6.0.18;

na wstępie oczywiście schodki, po zbudowaniu aplikacji i zrobieniu pierwszego deploy'a otrzymałem piękny komunikat:
...
SEVERE: Error configuring application listener of class com.sun.faces.config.GlassFishConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.GlassFishConfigureListener
...


oczywiście za googlałem i jest rozwiązanie:

dla JSF 1.1 w web.xml dodajemy:
<listener>
  <listener-class>
    com.sun.faces.config.ConfigureListener
  </listener-class>
</listener>


a dla JSF 1.2:
<listener>
  <listenerclass>
    com.sun.faces.config.GlassFishConfigureListener
  </listener-class>
</listener>


w następnym poście umieszczę bardzo prosty przykład uruchomienia kawałka kodu;