Zaciemnione hasła w plikach konfiguracyjnych Websphere Application Server

Ostatnio musiałem ręcznie edytować pliki konfiguracyjne Websphere Application Server. Chodziło konkretnie o security.xml dla serwera. Chciałem podmienić keystore z certyfikatem serwera ponieważ został wgrany wadliwy certyfikat i nawet konsola administracyjna nie działała. Żeby to zrobić trzeba wpisać hasło do keystore. Nie jest to jednak taka prosta sprawa – hasła w security.xml są pozaciemniane. Read more

Polskie znaczki na Java console

Wypisywanie polskich znaków (przy pomocy System.out) z programu napisanego w Javie uruchomionego z wiersza poleceń może przyprawić trochę kłopotów. Za globalne ustawienia domyślnego kodowania znaków odpowiada własność systemowa file.encoding ale ustawianie jej podczas działania programu nie wpływa na konsolę. Read more

Java console na i5/OS (iSeries czyli AS/400)

Miałem ostatnio styczność z serwerami iSeries. Serwery iSeries są średnimi serwerami firmy IBM opartymi obecnie na procesorach POWER™. Kiedyś (od 1988 roku) linia ta nazywała się AS400 i do dzisiaj często ta nazwa jest używana jako synonim. Pełna nazwa tej linii to IBM System i. Litera i w nazwie pochodzi od integration. Pracują przeważnie pod kontrolą systemu i5/OS. Serwery te ze względu na wysoki poziom bezpieczeństwa i niezawodności są często stosowane przez instytucje finansowe.

Przedstawię tutaj uruchamianie konsolowych programów Javy w trybie interaktywnym. Jest to dosyć ciekawe bo ten system operacyjny nie jest podobny ani do Windowsa ani do UNIXa. Plik class utworzyłem i skompilowałem po stronie serwera po to, żeby pokazać przykład użycia podstawowych komend systemu (celowo starałem się nie używać unixopodobnego shella QSH). Read more

Pobieranie typu klucza z pustej EnumMap

Klasa java.util.EnumMap jest bardzo wydajną implementacją java.util.Map dla wyliczeń. Jest wydajna dlatego, że hasze dla kluczy są wartościami porządkowymi instancji danego wyliczenia. Dokładniej jej implementacja przechowuje wartości w tablicy obiektów a indeksy to wartości porządkowe wyliczeń. W metodzie get możemy znaleźć taki kod:

vals[((Enum)key).ordinal()]

służący do pobierania wartości z tablicy vals dla klucza key. Żeby miało to sens (aby uniknąć powtarzania się kluczy) jeden obiekt typu EnumMap musi mieć klucze będące obiektami tego samego wyliczenia. Mechanizm typów generycznych nie wystarczy do zapamiętania typu klucza bo informacje o typach generycznych są wymazywane podczas kompilacji. Read more

« Previous Page