<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SMIKE</title>
	<atom:link href="http://www.smike.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.smike.pl</link>
	<description>Kolejny weblog IT</description>
	<lastBuildDate>Fri, 22 Jan 2010 15:20:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web Services w Eclipse Galileo</title>
		<link>http://www.smike.pl/2010/web-services/</link>
		<comments>http://www.smike.pl/2010/web-services/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 15:20:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java/j2ee]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.smike.pl/?p=38</guid>
		<description><![CDATA[Wydawać by się mogło, że tworzenie Web Service&#8217;ów jest rzeczą trudną. Trzeba znać strukturę pliku WSDL, specyfikacje protokołu SOAP itp. Nic bardziej mylnego!!! Co prawda mój pierwszy Web Service i klient do niego powstawał troszkę ponad godzinę, ale miałem do dyspozycji tylko tutorial w j. ang. do starej wersji Eclipsa. Za to mój drugi Web [...]]]></description>
			<content:encoded><![CDATA[<p>Wydawać by się mogło, że tworzenie Web Service&#8217;ów jest rzeczą trudną. Trzeba znać strukturę pliku WSDL, specyfikacje protokołu SOAP itp. Nic bardziej mylnego!!! Co prawda mój pierwszy Web Service i klient do niego powstawał troszkę ponad godzinę, ale miałem do dyspozycji tylko tutorial w j. ang. do starej wersji Eclipsa. Za to mój drugi Web Service razem z klientem powstawał już w przeciągu kilku minut. Chcesz się przekonać, że to możliwe? Zapraszam do lektury poniższego artykułu.<br />
<span id="more-38"></span></p>
<h3>Przygotowanie gruntu</h3>
<p>To co nam będzie potrzebne to oczywiście Eclipse z wbudowaną lub doinstalowaną wtyczką WTP 3.1.1 (Web Tools Platform) oraz kontener serwletów <a href="http://tomcat.apache.org/" target="_blank">Apache Tomcat 5.5</a> lub nowszy. Na chwile obecną dostępna jest dystrybucja <strong>Eclipse IDE for Java EE Developers</strong>, która ma wbudowaną wtyczkę WTP 3.1.1. Dystrybucja do ściągnięcia oczywiście ze strony <a href="http://www.eclipse.org/downloads/" target="_blank">www.eclipse.org/downloads</a>.</p>
<p>Ok, zakładam, że masz już zainstalowanego Eclipsa i Tomcat&#8217;a. Ostatnią rzeczą przed właściwym tworzeniem Web Service&#8217;u będzie konfiguracja Tomcata pod Eclipsem. W tym celu przejdź do <em><strong>Windows -&gt; Preferences -&gt; Installed Runtimes</strong></em> i dodaj nowy serwer uruchomieniowy:&nbsp; Apache Tomcat w wersji zgodnej z zainstalowaną.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/przygotowanie.jpg"><img class="aligncenter size-medium wp-image-52" title="Rys 1. Przygotowanie Eclipsa" src="http://www.smike.pl/wp-content/uploads/2010/01/przygotowanie-245x300.jpg" alt="Rys 1. Przygotowanie Eclipsa" width="245" height="300" /></a></p>
<p>Teraz możemy już tworzyć nasz przykładowy Web Service, którego zadaniem będzie tłumaczenie tekstu pisanego na alfabet Morsa i vice versa.</p>
<h3>Tworzenie Web Service&#8217;u</h3>
<p>Stwórzmy nowy projekt: <strong><em>File -&gt; New -&gt; Project -&gt; Dynamic Web Project</em></strong> i nazwijmy go &#8220;MorseCodeService&#8221;.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/serwis1.jpg"><img class="aligncenter size-medium wp-image-54" title="Rys 2. Tworzenie web serwisu - krok 1" src="http://www.smike.pl/wp-content/uploads/2010/01/serwis1-210x300.jpg" alt="Rys 2. Tworzenie web serwisu - krok 1" width="210" height="300" /></a></p>
<p>Jeśli nie mamy żadnej głębszej potrzeby to możemy zostawić wszystkie pozostałe parametry z domyślnymi wartościami. U mnie wygląda to następująco:</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/serwis2.jpg"><img class="aligncenter size-medium wp-image-55" title="Rys 3. Tworzenie web serwisu - krok 2" src="http://www.smike.pl/wp-content/uploads/2010/01/serwis2-224x300.jpg" alt="Rys 3. Tworzenie web serwisu - krok 2" width="224" height="300" /></a></p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/serwis3.jpg"><img class="aligncenter size-medium wp-image-56" title="Rys 4. Tworzenie web serwisu - krok 3" src="http://www.smike.pl/wp-content/uploads/2010/01/serwis3-224x300.jpg" alt="Rys 3. Tworzenie web serwisu - krok 3" width="224" height="300" /></a></p>
<p>Stwórzmy nową klasę java o nazwie <em>MorseCode</em> w pakiecie <em>pl.smike.services</em>, która będzie miała dwie metody <em>txt2Morse </em>i <em>morse2Txt</em>. Na postawie tej klasy stworzymy nasz Web Service.</p>
<p><a href="http://www.smike.pl/wp-content/uploads/2010/01/MorseCode.zip">MorseCode.java</a></p>
<p>Kliknij prawym przyciskiem myszy na plik <em>MorseCode.java</em> i wybierz <em><strong>New -&gt; Other -&gt; Web Service</strong></em>.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/serwis4.jpg"><img class="aligncenter size-medium wp-image-60" title="Rys 5. Tworzenie web serwisu - krok 4" src="http://www.smike.pl/wp-content/uploads/2010/01/serwis4-229x300.jpg" alt="Rys 5. Tworzenie web serwisu - krok 4" width="229" height="300" /></a></p>
<p>Upewnij się, że są zaznaczone obie metody klasy <em>MorseCode</em>.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/serwis5.jpg"><img class="aligncenter size-medium wp-image-61" title="Rys 6. Tworzenie web serwisu - krok 5" src="http://www.smike.pl/wp-content/uploads/2010/01/serwis5-229x300.jpg" alt="Rys 6. Tworzenie web serwisu - krok 5" width="229" height="300" /></a></p>
<p>Kliknij <em><strong>Next</strong></em>, w tym momencie kreator utworzy wszystkie potrzebne pliki i zależności do odpalenia Web Service&#8217;u. Na ekranie powinien pojawić sie przycisk <strong><em>Start Service</em></strong>, który należy wybrać.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/serwis6.jpg"><img class="aligncenter size-medium wp-image-62" title="Rys 7. Tworzenie web serwisu - krok 6" src="http://www.smike.pl/wp-content/uploads/2010/01/serwis6-229x300.jpg" alt="Rys 7. Tworzenie web serwisu - krok 6" width="229" height="300" /></a></p>
<p>Jeśli wszystko poszło prawidłowo i serwer odpalił się, dostępny będzie przycisk <em><strong>Next</strong></em>. Po jego użyciu nasz nowy serwis zostanie zdeployowany. Możemy zakończyć kreator -<em><strong>Finish</strong></em>.</p>
<p>W tym momencie nasz serwis powinien już być uruchomiony i prawidłowo działać. Dostępne, zdeployowane lokalnie serwisy w projekcie możemy sprawdzić pod adresem:  <a href="http://localhost:8080/MorseCodeService/services" target="_blank">http://localhost:8080/MorseCodeService/services</a></p>
<h3>Tworzenie klienta Web Service&#8217;u</h3>
<p>Naszego klienta stworzymy na podstawie pliku WSDL opisującego Web Service. Jest to o tyle dobre podejście, iż na ogół tworząc klienta Web Service&#8217;u posiadamy tylko plik WSDL.</p>
<p>Stwórzmy zatem nowy projekt: <strong><em>File -&gt; New -&gt; Project -&gt; Dynamic Web Project</em></strong> i nazwijmy go &#8220;MorseCodeClient&#8221;. Wszystkie pozostałe parametry ustawmy takie jak w przypadku &#8220;MorseCodeService&#8221;.</p>
<p>Kliknij prawym przyciskiem myszy na nazwie projektu i wybierz <em><strong>New -&gt; Other -&gt; Web Service Client</strong></em>.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/klient1.jpg"><img class="aligncenter size-medium wp-image-63" title="Rys 8. Tworzenie klienta web serwisu - krok 1" src="http://www.smike.pl/wp-content/uploads/2010/01/klient1-298x300.jpg" alt="Rys 8. Tworzenie klienta web serwisu - krok 1" width="298" height="300" /></a></p>
<p>W polu <em>Service Definition</em> musimy podać plik wsdl. Kliknij <em><strong>Browse</strong></em>. W oknie, które nam sie pojawi moglibyśmy podać URL do tego pliku, ale możemy zrobić prościej i wybierzemy go z istniejącego projektu MorseCodeService. Kliknij zatem jeszcze raz na <em><strong>Browse</strong></em> i wybierz plik MorseCode.wsdl.</p>
<p><a rel="lightbox" href="http://www.smike.pl/wp-content/uploads/2010/01/klient2.jpg"><img class="aligncenter size-medium wp-image-64" title="Rys 9. Tworzenie klienta web serwisu - krok 2" src="http://www.smike.pl/wp-content/uploads/2010/01/klient2-241x300.jpg" alt="Rys 9. Tworzenie klienta web serwisu - krok 2" width="241" height="300" /></a></p>
<p>Ostatni krok przygotowujący klienta to umiejscowienie plików źródłowych. Zostawmy wartości domyśle i klikamy <em><strong>Finish</strong></em>. W tym momencie zostaną utworzone wszystkie potrzebne pliki i zależności do komunikacji z Web Service&#8217;em. Najważniejsza klasą, która nas będzie interesować jest <em>MorseCodeProxy</em>. To przy jej pomocy zdobędziemy referencje do klasy <em>MorseCode </em>lub wywołamy pośrednio metody z tej klasy.</p>
<p>Stwórzmy nową stronę index.jsp w katalogu WebContent (<em><strong>New -&gt; Other -&gt; JSP</strong></em>). Strona ta będzie interfejsem użytkownika naszego klienta.</p>
<p><a href="http://www.smike.pl/wp-content/uploads/2010/01/index.zip">index.jsp</a></p>
<p>Mając już interfejs użytkownika ostatnią rzeczą będzie stworzenie servletu, który będzie wywoływał Web Service. Wybierz <strong>New -&gt; Other -&gt; Servlet</strong> i nazwij go <em>TranslateServlet i umieść w pakiecie pl.smike.servlets</em>. Kreator zadba o odpowiednie wpisy w web.xml&#8217;u tak więc nie musisz sie o to martwić.</p>
<p><a href="http://www.smike.pl/wp-content/uploads/2010/01/TranslateServlet.zip">TranslateServlet.java</a></p>
<p>Jeśli wszystko poszło dobrze możemy odpalać i testować naszego klienta. Kliknij prawym przyciskiem myszy na nazwe projektu i wybierz<em><strong>: Run As -&gt; Run on Server</strong></em>. Po zdeployowaniu naszej aplikacji na serwere wpisz w przeglądarce adres <a href="http://localhost:8080/MorseCodeClient/index.jsp" target="_blank">http://localhost:8080/MorseCodeClient/index.jsp</a> . I to już wszystko.</p>
<h3>Podsumowanie</h3>
<p>Jak widać tworzenie Web Service&#8217;ów w Eclipsie jest rzeczą prostą i sprowadza się do wyklinania prawie  wszystkiego.   Tworząc w pełni funkcjonalny Web Service nie musimy się zagłebiać w szczegóły jego jego działania na serwerze, ani sposobu komunikacji z klientem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smike.pl/2010/web-services/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Integracja Tomcat’a z serwerem Apache</title>
		<link>http://www.smike.pl/2008/integracja-tomcata-z-serwerem-apache/</link>
		<comments>http://www.smike.pl/2008/integracja-tomcata-z-serwerem-apache/#comments</comments>
		<pubDate>Sat, 03 May 2008 17:57:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java/j2ee]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.smike.pl/?p=26</guid>
		<description><![CDATA[Zapewne zastanawiasz sie poco łączyć serwer Tomcata z serwerem Apache, skoro Tomcat ma wbudowany serwer www? Okazuje się jednak, że jest kilka powodów dla których integracja tych dwóch serwerów może być przydatna:


Po pierwsze integracja daje możliwość wykorzystania wszystkich dobrodziejstw jakie oferuje nam serwer Apache. A więc: obsługę CGI, PHP, Perla, obsługę modułów mod_rewrite, mod_headers, mod_expire.
Po [...]]]></description>
			<content:encoded><![CDATA[<p>Zapewne zastanawiasz sie poco łączyć serwer Tomcata z serwerem Apache, skoro Tomcat ma wbudowany serwer www? Okazuje się jednak, że jest kilka powodów dla których integracja tych dwóch serwerów może być przydatna:<br />
<span id="more-26"></span></p>
<ul>
<li>Po pierwsze integracja daje możliwość wykorzystania wszystkich dobrodziejstw jakie oferuje nam serwer Apache. A więc: obsługę CGI, PHP, Perla, obsługę modułów mod_rewrite, mod_headers, mod_expire.</li>
<li>Po drugie mamy możliwość wydzielenia na Apache’u wirtualnych hostów, każdy z własną instancją Tomcata. Możemy również wybranym użytkownikom hostingu “podarować w prezencie” obsługę jsp i serwletów <img src="http://web.archive.org/web/20080514185832/http://www.smike.pl/wp-includes/images/smilies/icon_wink.gif" alt=";)" /></li>
<li>Po trzecie możemy wykorzystać mechanizm Load balancer, dzięki któremu obsługa żądań użytkowników będzie rozkładana na kilka instancji Tomcat’a. Zmniejszając tym samym obciążenie pojedynczego serwera.</li>
</ul>
<h3>Przygotowanie gruntu</h3>
<p>Znając już powód, dla którego chcemy połączyć oba serwery przystąpmy do działania. Na wstępnie zaznaczam, że opisywana tu metoda połączenia powinna działać dla serwerów Tomcat 4.0 i nowszych oraz serwerów Apache 2.0 i nowszych. Ja osobiście używam Tomcat 5.5 oraz Apache 2.2. Zakładam, że posiadasz podstawową wiedzę na temat konfiguracji obu serwerów i masz już je zainstalowane na swoim dysku. Jeśli nie, odsyłam do oryginalnej dokumentacji <a title="Dokumentacja do serwera Tomcat 5.5" href="http://tomcat.apache.org/tomcat-5.5-doc/index.html" target="_blank">tomcat.apache.org</a> oraz <a title="Dokumentacja do serwera Apache 2.2" href="http://httpd.apache.org/docs/2.2/" target="_blank">httpd.apache.org</a>.</p>
<p>To co nam będzie potrzebne do komunikacji obu serwerów to moduł Apache’a <strong>mod_jk</strong> do ściągnięcia w wersji skompilowanej <a title="Moduł mod_jk" href="http://www.apache.net.pl/tomcat/tomcat-connectors/jk/binaries/" target="_blank">«tutaj»</a>. Przy ściąganiu należy zwrócić uwagę na dwie rzeczy: jaki mamy system operacyjny oraz jaką mamy wersje Apache’a. Po ściągnięciu pliku zmieniamy jego nazwę na <strong>mod_jk.so</strong> i przenosimy do katalogu <strong>/modules/</strong> (lub /libexec<strong>/</strong> w przypadku Linux’a) znajdującego się w głównym katalogu Apache’a. Teraz pozostała nam już tylko czysta konfiguracja.</p>
<p>Stwórz nowy plik <strong>workers.properties</strong> i umieść go w katalogu <strong>/conf</strong>/ Apache’a. Plik ten będzie opisywał dostępne instancje Tomcatów oraz ich konfiguracje. W moim przypadku będzie to tylko jedna instancja.</p>
<p>workers.properties:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PROPERTIES"><div class="devcodeoverflow"><ol><li>worker.list<span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">worker1</span></li><li>&nbsp;</li><li><span style="color: #000080; font-weight:bold;">worker.worker1.type</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">ajp13</span></li><li><span style="color: #000080; font-weight:bold;">worker.worker1.host</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">localhost</span></li><li><span style="color: #000080; font-weight:bold;">worker.worker1.port</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">8009</span></li><li><span style="color: #000080; font-weight:bold;">worker.worker1.socket_timeout</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"><span style="">2000</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Objaśnienie:</p>
<ul>
<li>worker.list &#8211; określa listę dostępnych instancji Tomcata, dowolnie nazwanych.</li>
<li>worker.<nazwa_workera>.type &#8211; określa typ konkretnego robotnika, w moim przypadku jest to robotnik, który będzie używał protokołu ajpv13 do komunikacji między serwerami.</nazwa_workera></li>
<li>worker.<nazwa_workera>.host &#8211; określa nazwę hosta pod którym dostępny jest Tomcat.</nazwa_workera></li>
<li>worker.<nazwa_workera>.port &#8211; port na którym nasłuchuje Tomcat. Domyślnie dla ajp13 jest to port 8009.</nazwa_workera></li>
<li>worker.<nazwa_workera>.socker_timeout &#8211; czas oczekiwania na robotnika po upływnie, którego zgłoszony zostanie komunikat: server timeout.</nazwa_workera></li>
</ul>
<p>Konfiguracja w pliku <strong>httpd.conf</strong>:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="Apache configuration"><div class="devcodeoverflow"><ol><li><span style="color: #00007f;">LoadModule</span> jk_module modules/mod_jk.so</li><li>&nbsp;</li><li>&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> jk_module&gt;</li><li>&nbsp;&nbsp;JkWorkersFile F:\Programy\Apache2.2\conf\workers.properties</li><li>&nbsp;&nbsp;JkMount&nbsp;&nbsp;/jsp-examples/* worker1</li><li>&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;</li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Objaśnienie:</p>
<ul>
<li>JkWorkersFile &#8211; wskazuje plik opisujący robotników.</li>
<li>JkMount &#8211; określa jaka ścieżka zostanie przekazana do jakiego robotnika. W moim przypadku wszystkie zapytania rozpoczynające sie od ścieżki http://localhost/jsp-examples/ będą obsługiwane przez worker1, czyli przez mojego Tomcata. Pozostałe zapytania będą obsługiwane przez Apache’a.</li>
</ul>
<p>To już prawie wszystko. Sprawdźmy jeszcze czy connector ajp13 jest aktywny w Tomcat’ie i zakomentujmy connector odpowiedzialny za nasłuchiwanie Http. W tym celu w pliku <strong>server.xml</strong>, w katalogu <strong>/conf/</strong> Tomcat’a, powinny znajdować się zapisy:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="XML"><div class="devcodeoverflow"><ol><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Service</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Catalina&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #808080; font-style: italic;">&lt;!-- &lt;Connector port=&quot;7080&quot; maxHttpHeaderSize=&quot;8192&quot; maxThreads=&quot;150&quot; </span></li><li><span style="color: #808080; font-style: italic;">&nbsp;&nbsp;minSpareThreads=&quot;25&quot; maxSpareThreads=&quot;75&quot; enableLookups=&quot;false&quot; </span></li><li><span style="color: #808080; font-style: italic;">&nbsp;&nbsp;redirectPort=&quot;8443&quot; acceptCount=&quot;100&quot; connectionTimeout=&quot;20000&quot; </span></li><li><span style="color: #808080; font-style: italic;">&nbsp;&nbsp;disableUploadTimeout=&quot;true&quot; /&gt;</span></li><li><span style="color: #808080; font-style: italic;">--&gt;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Connector</span> <span style="color: #000066;">port</span>=<span style="color: #ff0000;">&quot;8009&quot;</span> <span style="color: #000066;">enableLookups</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000066;">redirectPort</span>=<span style="color: #ff0000;">&quot;8443&quot;</span> </span></li><li><span style="color: #009900;">&nbsp;&nbsp;<span style="color: #000066;">protocol</span>=<span style="color: #ff0000;">&quot;AJP/1.3&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li>&nbsp;</li><li>&nbsp;</li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>Show time</h3>
<p>Teraz pozostało już nam tylko odpalić Apache’a, a następnie odpalić Tomcat’a. Spróbuj uruchomić adres <a title="Apache Localhost" href="http://localhost/" target="_blank">http://localhost/</a> oraz <a title="Tomcat examples jsp" href="http://localhost/jsp-examples" target="_blank">http://localhost/jsp-examples</a>. Jeśli wszystko działa, gratuluje udało się połączyć oba serwery!!!</p>
<p>Na koniec chciałbym zaznaczyć, że przedstawiona tu konfiguracja to minimum niezbędne aby oba serwery współpracowały. Możliwości konfiguracyjnych jest oczywiście znacznie więcej. Po szczegóły odsyłam do oryginalnej dokumentacji: <a title="The Apache Tomcat Connector" href="http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html" target="_blank">The Apache Tomcat Connector</a> oraz <a title="Workers How To" href="http://tomcat.apache.org/connectors-doc/generic_howto/workers.html" target="_blank">Workers How To</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smike.pl/2008/integracja-tomcata-z-serwerem-apache/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Podręczny zestaw webdevelopera</title>
		<link>http://www.smike.pl/2008/podreczny-zestaw-webdevelopera/</link>
		<comments>http://www.smike.pl/2008/podreczny-zestaw-webdevelopera/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 17:50:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.smike.pl/?p=20</guid>
		<description><![CDATA[Z pewnością każdy kto używa Firefox’a wie, iż jego siła polega na dodatkowych plugin’ach. Jako prawie dwu letni programista aplikacji webowych nie wyobrażam sobie pracy bez kilku bardzo “podstawowych” dodatków do mojego ulubionego liska.

Tak więc przedstawiam niezbędne minimum webdevelopera:

Firebug &#8211; Jest to kompleksowe narzędzie umożliwiające łatwe przeglądanie kodu źródłowego strony, debugowanie kodu JavaScript, podgląd i [...]]]></description>
			<content:encoded><![CDATA[<p>Z pewnością każdy kto używa Firefox’a wie, iż jego siła polega na dodatkowych plugin’ach. Jako prawie dwu letni programista aplikacji webowych nie wyobrażam sobie pracy bez kilku bardzo “podstawowych” dodatków do mojego ulubionego liska.<br />
<span id="more-20"></span></p>
<p>Tak więc przedstawiam niezbędne minimum webdevelopera:</p>
<ul>
<li><a title="Firebug" href="https://addons.mozilla.org/pl/firefox/addon/1843" target="_blank">Firebug</a> &#8211; Jest to kompleksowe narzędzie umożliwiające łatwe przeglądanie kodu źródłowego strony, debugowanie kodu JavaScript, podgląd i edycje w locie styli CSS, podgląd obiektów DOM, podgląd nagłówków HTTP. Możliwości Firebuga jest naprawdę dużo. Jeśli ktoś jeszcze nie używa niech czym prędzej instaluje !!!</li>
<li><a title="Web Developer" href="https://addons.mozilla.org/pl/firefox/addon/60" target="_blank">Web Developer</a> &#8211; Na plugin składa się kilkadziesiąt małych ale za to bardzo przydatnych narzędzi. Począwszy od wyłączenia całkowitego cache’u, poprzez czyszczenie sesji, operacje na formularzach typu aktywowanie zdisablowanych pól, tworzenie podsumowań pól formularzy, wyświetlanie informacji o rozmiarach obrazków, mierzenia rozmiaru strony za pomocą linijek, a skończywszy na podglądzie kodu wygenerowanego JavaScriptem. To tylko nieliczne z przydatnych drobiazgów, które ułatwiają życie.</li>
<li><a title="ColorZilla" href="https://addons.mozilla.org/pl/firefox/addon/271" target="_blank">ColorZilla</a> &#8211; Małe ale bardzo fajne narzędzie do pobierania informacji o kolorze z dowolnego elementu strony www. Pobrany kolor może być zapisany do schowka w rozmaitych formatach.</li>
<li><a title="iMacros" href="https://addons.mozilla.org/pl/firefox/addon/3863" target="_blank">iMacros</a> &#8211; Automatyzuje procesy wypełniania formularzy, odwiedzania ciągle tych samych stron internetowych, wpisywania haseł, klikania ciągle tych samych przycisków. Doskonale nadaje się do testowania formularzy. Makra mogą być tworzone automatycznie (nagrywane) lub pisane ręcznie (co daje dość spore możliwości).<a title="iMacros" href="http://web.archive.org/web/20080515072231/https://addons.mozilla.org/pl/firefox/addon/3863" target="_blank"><br />
</a></li>
<li><a title="Live HTTP Headers" href="https://addons.mozilla.org/pl/firefox/addon/3829" target="_blank">Live HTTP Headers</a> &#8211; Plugin rejestrujący wszelkie nagłówki HTTP wysyłane i odbierane z przeglądarki. Umożliwia również wysyłanie własnych, zmodyfikowanych nagłówków.</li>
<li><a title="EditCSS" href="https://addons.mozilla.org/pl/firefox/addon/179" target="_blank">EditCSS</a> (opcjonalnie) &#8211; Plugin umożliwiający modyfikacje styli CSS w locie. Działa trochę bardziej niezawodnie aniżeli edytor dostępny w Firebug’u.</li>
</ul>
<p>Dodatki ułatwiające życie:</p>
<ul>
<li><a title="Mouse Gestures" href="https://addons.mozilla.org/pl/firefox/addon/39" target="_blank">Mouse Gestures</a> (opcjonalnie) &#8211; Jest to plugin umożliwiający sterowanie przeglądarką za pomocą gestów myszki. Osobiście używam tylko dwóch gestów (”poprzednia strona”, “następna strona”) ale chociażby tylko dla nich warto zainstalować.</li>
<li><a title="Adblock Plus" href="https://addons.mozilla.org/pl/firefox/addon/1865" target="_blank">Adblock Plus</a> (opcjonalnie) &#8211; Ogranicza spam i reklamy na stronach.</li>
</ul>
<p>Podsumowując:<br />
Jeśli ktoś zajmuje się poważnie tworzeniem stron/aplikacji internetowych zapewne zna większość przedstawionych tu pluginów. Dla tych którzy dopiero rozpoczynają przygodę z programowaniem sieci powyższe pluginy będą bardzo pomocne i zachęcam do ich instalacji.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smike.pl/2008/podreczny-zestaw-webdevelopera/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
