NetBeans 6.8 + Glassfish v3 + jee examples
gru 24th
Lekko interesując się Java EE napotkałem pewien problem, związany z kompilacją przykładowego kodu, dotyczącego jeszcze jee 5. Mimo że wszystkie wymagane biblioteki zostały zlokalizowane i dodane do projektu, i tak występowały błędy kompilacji związane z nieodnalezieniem pakietu javax.persistance.
Większość wypowiedzi na forach dotyczy sytuacji w której wspomnianych bibliotek w projekcie nie ma. Ja miałem pewność że pod tym względem wszystko jest w porządku, gdyż przeniesienie projektu na dysk C:\ umożliwiało bezproblemowa kompilację. Rozwiązanie problemu znalazłem tu: http://forums.netbeans.org/post-42466.html. Przed kompilacją projektu bookstore1 należy jeszcze zbudować bookstore będąc w jakiś sposób projektem nadrzędnym. W przeciwnym wypadku pojawi się wspomniany błąd.
Poniższy film przedstawia jak z pomocą NetBeans 6.8 poprawnie zbudować projekt i zdeployować go na serwerze aplikacji. W moim przypadku serwerem aplikacji jest Glassfish v3.
Na deploy’u jednak nie koniecznie musi się skończyć. Wiele przykładów do SDK 5 wymaga połączenia z bazą danych. Tak jest z aplikacją bookstore, wykorzystaną w poprzednim filmie. Mimo że została poprawnie umieszczona na serwerze, nie może pobrać danych, o czym informuje zgłoszony wyjątek. Konfiguracja bazy oraz połączenia
Jej to moje pierwsze screencasty
Przezroczyste okienka z WinAPI
paź 10th
Wraz z pojawieniem się systemu Windows 2000, pojawiły się nowe funkcje systemowego API. Jedną z nich jest możliwość tworzenia okien o dowolnym stopniu przezroczystości. Efekt jest dość ciekawy i sporo programów ma możliwość ustawienia przezroczystości własnego okienka. Moim celem było umożliwienie sterowania przezroczystością okien centralnie z jednego programu i to nie zależnie od tego czy okno takie zostało do tego przystosowane czy też nie. Po przeczytaniu tego wpisu, każdy samodzielnie będzie mógł napisać podobną aplikację
Karta X100P i Kernel Panic
wrz 21st
Mimo nowych wersji zarówno Trixboxa i Astersika, problem nadaj pozostaje. Po skonfigurowaniu karty, w czasie wyłączania systemu kernel dostaje zadyszki o czym informuje znienawidzonym komunikatem „KERNEL PANIC”. Od ostatniego wpisu na ten temat ( jeszcze na stary blogu, który trafił szlag podczas aktualizacji WP) trochę się zmieniło. Nie ma już co szukać pliku KXXZaptel, bo znalezienie go oznacza że nasz system jest lekko zacofany – Zaptel jest obecnie znany jako DAHDI. Również zawartość odpowiedniego pliku jest lekko inna, ale mimo wszystko można problem rozwiązać.
Co należy zrobić to w /etc/rc6.d odnaleźć plik KXXdahdi, u mnie jest to K92dahdi i zakomentować poniższy fragment, okolice linii 235:
# Unload drivers
#shutdown_dynamic
#echo -n „Unloading DAHDI hardware modules: ”
#if unload_module dahdi; then
# echo „done”
#else
# echo „error”
#fi
#if [ "$LOCKFILE" != '' ]; then
# [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
#fi
i zamykanie systemu zaczyna działać jak należy. Może sam problem nie jest zbyt uciążliwy gdyż działający serwer VoIP nie jest często resetowany. Ale zabawa zaczyna się gdy zaistnieje potrzeba przeprowadzenia takiej operacji zdalnie…
Tworzenie okienka w asm
wrz 2nd
Wiadomo że stworzenie okienka przy wykorzystaniu języka C i WinAPI nie jest zadaniem trudnym. Nawet w dokumentacji od MS można znaleźć gotowy przykład. Jest to natomiast zadanie bardzo żmudne i z reguły z pełnym zrozumieniem pól i dopuszczalnych wartości dla wymaganych struktur robi się to tylko raz. Potem albo się kopiuje gotowy standardowy kod wprowadzając tylko pewne czasami zmiany odbiegającego od typowego zastosowania, albo przyjmuje że „się umie” i „zna fundament” i przesiada na WindowsForms. Ale można pójść w drugą stronę, stworzyć okienko w assmeblerze i tym samym uzyskać miano rycerza hardcoru. Więcej >
O JSP słów kilka
lip 5th
W swoim wcześniejszym wpisie, zatytułowanym JSP, JSF, GlassFish – mini słowniczek napisałem że JSP jest wykorzystywane jako warstwa widoku w modelu MVC. Jest to oczywiście prawda ale jak się niedawno dowiedziałem, w znaczny sposób spłyciłem zastosowanie JSP. Okazuje się bowiem że samo JSP jest idealnym sposobem na tworzenie prostych aczkolwiek dynamicznych stron WWW w których nie ma potrzeby podziału na poszczególne warstwy Model – Widok – Kontroler. Co więcej okazuję się że każda strona JSP również jest servletem i zachowuję się w sposób podobny.
Więcej >
Wstęp do servlet’ów
cze 28th
A czym że to jest ? Servlet API to zbiór klas i interface’ów które umożliwiają komunikację z użytkownikiem i dynamicznie przygotowywanie treści w odpowiedzi na żądanie. Servlet jest to napisana w języku Java klasa, ładowana i obsługiwana poprzez serwer WWW lub serwer aplikacji współpracujący z serwerem WWW, która umie odebrać żądanie i odpowiednio obrobić i wygenerować odpowiedź. Ci którzy mieli styczność ze skryptami CGI zapewne zauważą podobieństwa, Servlet jest prawie tym samym co skrypt PHP. Jednak ja mówi stare chińskie przysłowie „prawie robi wielką różnicę”.
Więcej >
Magiczne delete []
cze 22nd
Prawdopodobnie nikt się nie zastanawiał jak dokładnie działa delete [], wystarczy wiedzieć że usuwa wszystkie obiekty umieszczone w dynamicznie zaalokowanej tablicy. Jeżeli obiekty posiadają destruktor to jest on uruchamiany, a jeśli nie to pamięć jest po prostu zwalniana. Muszę przyznać że mnie samemu też nigdy nie przyszło na myśl że może się tam kryć coś „magicznego”. Trawało to do czasu aż zupełnie przypadkiem trafiłem na wpis na blogu który opisuje SKĄD DELETE [] WIE ILE OBIEKTÓW NALEŻY USUNĄĆ.
Nie będę kopiował cudzego wpisy/odkrycia jedynie po przetłumaczeniu na język ojczysty więc odsyłam do źródła oraz zachęcam do lektury (tytuł dodatkowo mówi sam za siebie): http://mdzahidh.wordpress.com/2007/08/24/a-little-cc-recipe-you-can-live-without-knowing/
Z C++ zagadka nr 3
cze 12th
Kompilator zrobi dokładnie to co chcesz. DOKŁADNIE!
i właśnie dlatego trzeba uważać. Ta zagadka jak i pozostałe ma na celu zwrócenie uwagi na miejsca które wydają się oczywiste a moga wprowadzić wiele zamieszania i niepotrzebnych nerwów. W końcu nie od dziś wiadomo że najgroźniejsze błędy znajdują się w „kodzie który napewno jest dobrze”. Tym razem zagadka wymaga trochę więcej od czytelnika, nie wystarczy znajmość C++, trzeba się jeszcze wykazać odrobiną znajomości biblioteki boost. Więcej >
Z C++ zagadka nr 2
cze 6th
Zagadka nr 2 bardzo blisko związana z zawiłościami języka programowania c++, choć okazuje się że dotyczy także innych, w tym np. Javy. Kod wydaje się banalnie prosty. Jednak jak mówi „stare chińskie przysłowie” – „Diabeł tkwi w szczegółach”.
Więcej >
Funkcje wirtualne w c++
maj 15th
Mechanizm funkcji wirtualnych, występujący także pod nazwą „późnego wiązania”, jest bardzo ważny elementem języka programowania. Pozwala na wywołania innej wersji metody w zależności od obiektu na rzecz którego metoda jest wywoływana. Największe zastosowanie funkcji wirtualnych to umożliwienie przechowywanie obiektów w kolekcjach jako obiektów klasy bazowej, a wywoływanie metod które dotyczą faktycznego typu obiektu. Więcej >