Debugging w aplikacjach PASOE

W kilkunastu postach opisywałem tworzenie serwisów i aplikacji z udziałem serwera aplikacji PASOE i coraz więcej naszych klientów korzysta z tej technologii. Coraz częściej powtarza się pytanie: jak można wykorzystać debugger aby wychwytywać błędy i testować aplikacje.
PASOE to połączenie technologii Tomcat (Java) i OpenEdge (ABL), więc kompletny proces debuggowania jest dość złożony.
Tutaj chciałbym pokazać jak zacząć ten proces z punktu widzenia OpenEdge’a.

Jak zwykle przed przystąpieniem do wykorzystania debuggera, trzeba włączyć tę funkcjonalność w środowisku OpenEdge. Należy uruchomić komendę prodebugenable -enable-all jako administrator.

Drugim krokiem jest wdrożenie web aplikacji oedb.war w testowanej instancji. Pamiętajmy, że ze względów bezpieczeństwa, nigdy nie wdrażać jej w środowisku produkcyjnym!
pasman deploy -I oepas1 %DLC%\servers\pasoe\extras\oedbg.war


Cały proces debuggowania będzie odbywał się w Progress Developer’s Studio for OpenEdge.
Wykorzystam do testowania plik klasy wygenerowany przy tworzeniu prostego serwisu REST i dodania zasobu (Business Entity) Customer, co opisywałem na początku 2016 roku.
Dostajemy klasę customer.cls z metodami CRUD: CreateCustomer, ReadCustomer, UpdateCustomer i DeleteCustomer. Ja wykorzystam metodę ReadCustomer i wstawię breakpoint zaraz za instrukcją SUPER:ReadData(filter). klikając po lewej stronie dwukrotnie myszką.

Teraz klikając prawym przyciskiem myszy na instancję PASOE wybieramy Restart in Debug.


Następnie uruchamiamy serwis w przeglądarce poprzez link dla Custnum=1,
http://localhost:8810/CustProj/rest/CustProjService/customer?filter=Custnum=1
a w następnej kolejności dla Custnum < 5.
http://localhost:8810/CustProj/rest/CustProjService/customer?filter=Custnum<5

W PDSOE w widoku dla zmiennych zobaczymy wartość filtra odpowiednio “Custnum=1″oraz “Custnum<5”.
Widać z tego, że zasada testowania aplikacji przy pomocy debuggera jest dość prosta.



Dodam jeszcze jedną informację, ponieważ byłem o to kilka razy pytany: W sytuacji gdy mamy wiele projektów i instancji PASOE, jak sprawdzić która instancja obsługuje dany serwis.
Można sprawdzić np. poleceniem tcman jakie serwisy są wdrożone w danej instancji, a w PDSOE podejrzeć właściwości danego projektu jak na widoku poniżej.

Cały proces debuggowania można prześledzić na kanale Youtube.
Webinar ten jest rozszerzony o testowanie aplikacji nie tylko lokalnych ale także zdalnych.