<?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>Misc - FlavioCrispim &#187; howto</title>
	<atom:link href="http://flaviocrispim.com/post/category/howto/feed" rel="self" type="application/rss+xml" />
	<link>http://flaviocrispim.com</link>
	<description>Fresh Air</description>
	<lastBuildDate>Tue, 29 Jan 2008 02:43:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JSP versus PHP? N&#227;o PHP no Tomcat. =P</title>
		<link>http://flaviocrispim.com/post/18</link>
		<comments>http://flaviocrispim.com/post/18#comments</comments>
		<pubDate>Sun, 20 Jan 2008 06:47:13 +0000</pubDate>
		<dc:creator>flaviocrispim</dc:creator>
				<category><![CDATA[Authors]]></category>
		<category><![CDATA[Flavio Crispim]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP on Tomcat]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://flaviocrispim.com/post/18</guid>
		<description><![CDATA[Sou especialista em desenvolvimento de aplicações web, usando tecnologia J2EE.
PHP? Bem tenho um contrato de vários meses com um provedor e na prática, java é bem caro de se manter neste quesito para aplicações web, já PHP consome poucos recursos e todo provedor ofereçe suporte sem custos adicionais.
Ótima oportunidade de conhecer outra tecnologia, tenho algumas [...]]]></description>
			<content:encoded><![CDATA[<p>Sou especialista em desenvolvimento de aplicações web, usando tecnologia J2EE.</p>
<p>PHP? Bem tenho um contrato de vários meses com um provedor e na prática, java é bem caro de se manter neste quesito para aplicações web, já PHP consome poucos recursos e todo provedor ofereçe suporte sem custos adicionais.</p>
<p>Ótima oportunidade de conhecer outra tecnologia, tenho algumas idéias de pequenos projetos, mas e para desenvolver e manter com o menor custo possível precisarei aprender RoR ou PHP, que são as tecnologias disponiveis por padrão no meu provedor.</p>
<p>Porque PHP? Encontrei mais referências, tem uma comunidade maior e bastante ativa e porque pretendo entender um pouco mais do wordpress (escrito em PHP), Ruby on Rails, fica para a próxima.</p>
<p>Por mais ridículo que pareça, decidi sem nenhum motivo em especial pesquisar se seria possível escrever uma aplicação PHP e usar o Tomcat como servidor. (aeuaue)</p>
<p>Funciona sim, mas como não passo de newbie em PHP, não sei se funciona plenamente a ponto de poder rodar um Bugzilla ou um Wordpress.</p>
<h3>Receita</h3>
<blockquote>
<h5>Ingredientes:</h5>
<ul>
<li>1 &#8211; PHP 5.2.5 (<a href="http://www.php.net">http://www.php.net</a>);</li>
<li>1 &#8211; PECL 5.2.5 (<a href="http://www.php.net">http://www.php.net</a>);</li>
<li>1 &#8211; Tomcat 5.5.25 (<a href="http://tomcat.apache.org">http://tomcat.apache.org</a>);</li>
<li>1 &#8211; J2SE 6.0u4 (<a href="http://java.sun.com">http://java.sun.com</a>);</li>
</ul>
<h5>Modo de Preparo do Ambiente:</h5>
<ul>
<li>Primeiro Instale a JVM e em seguida descompacte o zip do PHP5 no diretório que desejar, sugiro c:\PHP;</li>
<li>Instalar o Tomcat, basicamente descompacte-o, ou no caso de arquivo &#8216;.msi&#8217; use o wizard;</li>
<li>Criar a variável de ambiente JAVA_HOME apontando para o diretório do&#8230;      &#8230; java;</li>
<li>PHP_HOME para&#8230;         &#8230; c:\PHP;</li>
<li>CATALINA_HOME &#8211; para o diretório onde estão os arquivos do Tomcat;</li>
<li>Incluir na variável de ambiente PATH os caminhos: %CATALINA_HOME%\bin;%PHP_HOME%;%JAVA_HOME%\bin</li>
<li>Fechar todas as janelas de comando que estão abertas. <img src='http://flaviocrispim.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<h5>Modo de preparo do PHP no Tomcat</h5>
<ul>
<li>No diretório c:\PHP existe um arquivo: &#8216;php.ini-dist&#8217;, faça uma cópia dele com o nome&#8230; &#8216;php.ini&#8217;;</li>
<li>Edite o arquivo php.ini e procure por &#8216;extension=php_java.dll&#8217;, verifique se a linha existe e se não está comentada, caso não exista&#8230; crie.</li>
</ul>
<p>O arquivo zip PECL serve para alguma coisa sim. Existem alguns arquivos que precisam ser extraídos para a pasta raiz do PHP e um último arquivo que deverá ser usado como biblioteca no Tomcat.</p>
<ul>
<li>No zip PECL extraia os arquivos: php5servlet.dll, php_java.jar e php_java.dll para o diretório c:\PHP;</li>
<li>No diretório webapps do tomcat, crie um diretório que servirá como raiz da aplicação PHP, exemplo phpdubsoup;</li>
<li>No diretório Raiz da aplicação crie também o diretório WEB-INF, dentro do WEB-INF crie o diretório classes, ainda no diretório WEB-INF crie um arquivo web.xml, contendo:</li>
</ul>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;<br />
&lt;!DOCTYPE web-app PUBLIC<br />
  &#8220;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&#8221;<br />
  &#8220;<a ?="?" href="http://java.sun.com/dtd/web-app_2_3.dtd">http://java.sun.com/dtd/web-app_2_3.dtd&#8221;</a>&gt;<br />
&lt;web-app&gt;<br />
&lt;servlet&gt;<br />
    &lt;servlet-name&gt;php&lt;/servlet-name&gt;<br />
        &lt;servlet-class&gt;net.php.servlet&lt;/servlet-class&gt;<br />
    &lt;/servlet&gt;<br />
    &lt;servlet&gt;<br />
        &lt;servlet-name&gt;php-formatter&lt;/servlet-name&gt;<br />
        &lt;servlet-class&gt;net.php.formatter&lt;/servlet-class&gt;<br />
    &lt;/servlet&gt;<br />
    &lt;servlet-mapping&gt;<br />
        &lt;servlet-name&gt;php&lt;/servlet-name&gt;<br />
        &lt;url-pattern&gt;*.php&lt;/url-pattern&gt;<br />
    &lt;/servlet-mapping&gt;<br />
    &lt;servlet-mapping&gt;<br />
        &lt;servlet-name&gt;php-formatter&lt;/servlet-name&gt;<br />
        &lt;url-pattern&gt;*.phps&lt;/url-pattern&gt;<br />
    &lt;/servlet-mapping&gt;<br />
&lt;/web-app&gt;</p>
<ul>
<li>No arquivo PECL extraia o arquivo phpsrvlt.jar e extraia o conteúdo deste arquivo jar para o diretório WEB-INF/classes da aplicação phpdubsoup;</li>
</ul>
<p><font color="#000000">O conteúdo do arquivo jar contém os servlets declarados no web.xml, mas na versão usada necessita de uma pequena correção nos arquivos properties, para referenciar corretamente a biblioteca &#8216;php5servlet.dll&#8217;</font></p>
<ul>
<li>Editar os arquivos: &#8216;reflect.properties&#8217; e &#8217;servlet.properties&#8217; que se encontram em: phpdubsoup/WEB-INF/classes/net/php. A variável library deve ser igual ao nome da biblioteca, assim:</li>
</ul>
<p>library=php5servlet</p>
<ul>
<li>Na raiz da aplicação phpdubsoup, criar um arquivo chamado test.php, contendo:</li>
</ul>
<p>&lt;?php phpinfo(); ?&gt;</p>
<ul>
<li>Abrir uma linha de comando, e digitar startup, para iniciar o tomcat.</li>
</ul>
<h5>Modo do Consumo</h5>
<ul>
<li>Abrir o seu browser predileto e acessar a seguinte url: <a href="http://localhost:8080/phpdubsoup/test.php">http://localhost:8080/phpdubsoup/test.php</a>;</li>
<li>Você deverá ver uma página similar a esta:</li>
</ul>
<p><a href="http://flaviocrispim.com/wp-content/uploads/2008/01/phpdubsoup2.PNG" style="margin-left: 100px" title="phpdubsoup2.PNG"><img width="169" src="http://flaviocrispim.com/wp-content/uploads/2008/01/phpdubsoup2.thumbnail.PNG" alt="phpdubsoup2.PNG" height="130" /></a></p></blockquote>
<p>Pronto! PHP rodando dentro do Tomcat. Não é a configuração que irei usar no meu site, mas é assim que darei meus primeiros passos nessa linguagem.</p>
<p>Referência: <a href="http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/" title="http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/">http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flaviocrispim.com/post/18/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Template para cria&#231;&#227;o de projeto com o Maven2</title>
		<link>http://flaviocrispim.com/post/11</link>
		<comments>http://flaviocrispim.com/post/11#comments</comments>
		<pubDate>Thu, 06 Dec 2007 20:04:05 +0000</pubDate>
		<dc:creator>flaviocrispim</dc:creator>
				<category><![CDATA[Authors]]></category>
		<category><![CDATA[Flavio Crispim]]></category>
		<category><![CDATA[Ricardo Silva]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://flaviocrispim.com/?p=11</guid>
		<description><![CDATA[Para criar um projeto novo usando o Maven é bem rápido, bastam alguns passos para que o projeto esteja pronto e configurado com a sua IDE preferida.
Neste post vou descrever o passo-a-passo para a criação de um projeto WAR. Os passos de execução podem precisar de pequenos ajustes para que seja executado no seu ambiente [...]]]></description>
			<content:encoded><![CDATA[<p>Para criar um projeto novo usando o Maven é bem rápido, bastam alguns passos para que o projeto esteja pronto e configurado com a sua IDE preferida.</p>
<p>Neste post vou descrever o passo-a-passo para a criação de um projeto WAR. Os passos de execução podem precisar de pequenos ajustes para que seja executado no seu ambiente de desenvolvimento.</p>
<p>As características do meu projeto são: Projeto Web, Struts, jUnit.</p>
<p>O Maven tem a capacidade de resolver todas as dependências do projeto a partir do arquivo pom.xml e desta forma fará o download de todas as dependências, no meu caso todos os Jar´s do Strut´s e do jUnit, bem como todas suas dependências, automaticamente.</p>
<p>Para realizar esta tarefa o Maven pode precisar acessar seu repositório padrão, e para tanto uma conexão com a internet é necessária. Como no meu ambiente de trabalho as conexões com a internet são realizadas através de Proxy HTTP, então um passo adicional precisa ser realizado para indicar ao Maven que suas requisições utilize o Proxy configurado, e fornecendo usuário e senha, caso existam.</p>
<p>Não vou descrever o processo de instalação do Maven, que é bem simples. Considero que para continuar você possui o Maven2 instalado e que o diretório <strong><font color="#868686">$MAVEN_HOME/bin</font></strong> esteja no PATH da máquina.</p>
<h5>1. Proxy HTTP (Opcional)</h5>
<p>Editar o arquivo $MAVEN_HOME/conf/settings.xml</p>
<blockquote><p>&lt;settings&gt;<br />
    &#8230;<br />
    &lt;proxies&gt;<br />
        &lt;proxy&gt;<br />
            &lt;id&gt;optional&lt;/id&gt;<br />
            &lt;active&gt;true&lt;/active&gt;<br />
            &lt;protocol&gt;http&lt;/protocol&gt;<br />
            &lt;username&gt;&lt;/username&gt;<br />
            &lt;password&gt;&lt;/password&gt;<br />
            &lt;host&gt;proxy.mycomp.com&lt;/host&gt;<br />
            &lt;port&gt;8080&lt;/port&gt;<br />
            &lt;nonProxyHosts&gt;mycomp.com, localhost&lt;/nonProxyHosts&gt;<br />
        &lt;/proxy&gt;<br />
    &lt;/proxies&gt;<br />
    &#8230;<br />
&lt;/settings&gt;</p></blockquote>
<h5>2. Criando o template do projeto</h5>
<p>Neste passo vou criar o diretório que servirá como raiz do meu projeto, seguindo uma estrutura definida qualquer:</p>
<ul>
<li>#cd $USER_HOME/projetos</li>
<li>/export/home/fsantos/projetos# mkdir –p testewar/modules</li>
<li>/export/home/fsantos/projetos# cd testewar/modules</li>
<li>&#8230;/testewar/modules# mvn archetype:create -DgroupId=com.mycompany<br />
-DartifactId=portal -DarchetypeArtifactId=maven-archetype-webapp</li>
</ul>
<p>Em promeiro lugar foram criados três diretórios, dois deles foram criados explicitamente pelo comando <strong><font color="#868686">mkdir –p testewar/modules</font></strong> e o terceiro diretório foi criado pelo maven e o nome deste diretório será o artifactId da aplicação, que neste caso é <strong><font color="#868686">portal</font></strong>.</p>
<h5>3. Criando o workspace</h5>
<ul>
<li>/export/home/fsantos/projetos/testewar# mkdir –p workspaces/eclipse_33</li>
<li>/export/home/fsantos/projetos/testewar# cd workspaces/eclipse_33</li>
<li>/export/home/fsantos/projetos/testewar/workspaces/eclipse_33# pwd<br />
/export/home/fsantos/projetos/testewar/workspaces/eclipse_33<br />
(Copiar este path)</li>
</ul>
<p>Executar o eclipse, no meu caso é o Eclipse 3.3 e indicar o path &#8220;/export/home/fsantos/projetos/testewar/workspaces/eclipse_33&#8243; como o caminho para o workspace.</p>
<p>Quando o eclipse termina de carregar terá sido criado o diretório &#8220;.metadata&#8221;,<br />
deixo o eclipse de lado por enquando e minimizo.</p>
<h5>4. Criando os arquivos de configuração de projeto do Eclipse</h5>
<ul>
<li>
<p align="left">#cd $USER_HOME/projetos/testewar/modules/portal</p>
</li>
<li>
<p align="left">&#8230;/projetos/testewar/modules/portal# mvn -Dwtpversion=1.5 eclipse:eclipse</p>
</li>
</ul>
<p>Ao final deste, uma estrutura de diretórios foi criada usando a arquétipo padrão do Maven. Os arquivos <strong><font color="#868686">.classpath</font></strong> e <strong><font color="#868686">.project</font></strong> estão prontos e com as dependências já relacionadas.</p>
<h5>5. Configurando o projeto no Eclipse</h5>
<p>Com o Eclipse rodando, preciso importar o projeto já criado, estes passos serão necessários:</p>
<ol>
<li>File -&gt; Import&#8230;</li>
<li>Import -&gt; General -&gt; Existing Projects into Workspace
<ol>
<li>Botão Next</li>
</ol>
</li>
<li>Select root directory:
<ol>
<li>Browse&#8230;</li>
<li>Apontar para o diretório portal</li>
</ol>
</li>
<li>Botão Finish</li>
</ol>
<p>O projeto será importado mas falta indicar o caminho do repositório do Maven para que o Eclipse possa compilar os fontes:</p>
<ol>
<li>Window -&gt; Preferences&#8230;</li>
<li>Na janela Preferences: buscar por Classpath variables</li>
<li>Adicionar a variável M2_REPO com o valor $USER_HOME/.m2/repository</li>
<li>Clicar Botão Ok</li>
</ol>
<h5>6. Adicionando Struts</h5>
<p>Para adicionar struts no meu projeto preciso apenas editar o arquivo: <strong><font color="#868686">$USER_HOME/projetos/testewar/modules/portal/pom.xml</font></strong></p>
<blockquote><p>&lt;project xmlns=&#8221;<a href="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0&#8243;</a><br />
xmlns:xsi=&#8221;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance&#8221;</a><br />
xsi:schemaLocation=&#8221;<a href="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0</a><br />
<a href="http://maven.apache.org/maven-v4_0_0.xsd">http://maven.apache.org/maven-v4_0_0.xsd&#8221;</a>&gt;<br />
    &#8230;<br />
    &lt;dependencies&gt;<br />
        &#8230;<br />
        &lt;dependency&gt;<br />
            &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;<br />
            &lt;artifactId&gt;struts-core&lt;/artifactId&gt;<br />
            &lt;version&gt;1.3.8&lt;/version&gt;<br />
        &lt;/dependency&gt;<br />
        &lt;dependency&gt;<br />
            &lt;groupId&gt;junit&lt;/groupId&gt;<br />
            &lt;artifactId&gt;junit&lt;/artifactId&gt;<br />
            &lt;version&gt;3.8.1&lt;/version&gt;<br />
            &lt;scope&gt;test&lt;/scope&gt;<br />
        &lt;/dependency&gt;<br />
        &#8230;<br />
    &lt;/dependencies&gt;<br />
    &#8230;<br />
&lt;/project&gt;</p></blockquote>
<p>Agora as dependências com o Struts e com o jUnit já estão relacionadas e a partir de agora qualquer comando do Maven executado, o download das bibliotecas será realizado, exemplo:</p>
<ul>
<li>/export/home/fsantos/projetos/testewar/modules/portal# mvn compile</li>
</ul>
<p>Como as dependências com as bibliotecas foram adicionadas depois da criação dos arquivos do projeto (Tópico 5), o que foi feito de proppósito para tornar claro como adicionar uma dependencia a um projeto já pronto. Será necessário executar:</p>
<ul>
<li>&#8230;/projetos/testewar/modules/portal# mvn eclipse:eclipse</li>
</ul>
<h5>7. Comandos do úteis (Goals)</h5>
<table border="1" width="461" cellPadding="2" cellSpacing="0">
<tr>
<td width="141" vAlign="top">mvn clean</td>
<td width="318" vAlign="top">Limpa os diretórios de bibliotecas e de arquivos compilados</td>
</tr>
<tr>
<td width="144" vAlign="top">mvn compile</td>
<td width="316" vAlign="top">Compila projeto</td>
</tr>
<tr>
<td width="146" vAlign="top">mvn eclipse:eclipse</td>
<td width="315" vAlign="top">Atualiza lista de bibliotecas referenciadas pelo Eclipse</td>
</tr>
<tr>
<td width="147" vAlign="top">mvn install</td>
<td width="314" vAlign="top">Adiciona arquivo war no repositório local do Maven</td>
</tr>
<tr>
<td width="147" vAlign="top">mvn deploy</td>
<td width="314" vAlign="top">Adiciona arquivo war no servidor de artefatos do Maven</td>
</tr>
<tr>
<td width="148" vAlign="top">mvn package</td>
<td width="313" vAlign="top">Gera arquivo war</td>
</tr>
<tr>
<td width="149" vAlign="top">mvn verify</td>
<td width="312" vAlign="top">Verifica as dependências</td>
</tr>
<tr>
<td width="149" vAlign="top">mvn war:war</td>
<td width="312" vAlign="top">Gera arquivo WAR no diretório target</td>
</tr>
<tr>
<td width="149" vAlign="top">mvn war:inplace</td>
<td width="312" vAlign="top">Gera WAR &#8216;explodido&#8217; no diretório &#8217;src/main/webapp&#8217;, de modo que possa realizar o deploy deste usando configuração do Tomcat<br />
.<br />
Desvantagem: diretórios criados: &#8216;WEB-INF/classes&#8217; e &#8216;WEB-INF/lib&#8217; não são removidos quando é executado comando <em>mvn clean</em></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://flaviocrispim.com/post/11/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
