<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3308670910116152155</id><updated>2024-10-08T23:22:26.542-03:00</updated><category term="java"/><category term="jsf"/><category term="linux"/><category term="mac osx"/><category term="faces"/><category term="maven"/><category term="spring"/><category term="933sn"/><category term="JVMVersion"/><category term="RoR"/><category term="android"/><category term="annotation"/><category term="anotação"/><category term="auditoria"/><category term="chosen"/><category term="component"/><category term="configurar"/><category term="criar projeto"/><category term="css"/><category term="dependency injection"/><category term="diaspora"/><category term="dual head"/><category term="eclipse"/><category term="error"/><category term="git"/><category term="hibernate"/><category term="injeção de dependencia"/><category term="intelliJ"/><category term="jar"/><category term="javascript"/><category term="jpa"/><category term="jquery"/><category term="legacy"/><category term="linha de comando"/><category term="log"/><category term="macosx"/><category term="managed bean"/><category term="managed property"/><category term="motorola defy"/><category term="notification"/><category term="notificação"/><category term="osx"/><category term="proxy"/><category term="rails"/><category term="redirect"/><category term="redis"/><category term="rocket"/><category term="rocket.chat"/><category term="root device"/><category term="ruby"/><category term="ruby on rails"/><category term="samsung"/><category term="search"/><category term="second display"/><category term="segundo monitor"/><category term="ssh"/><category term="ssh key"/><category term="sshkey"/><category term="subversion"/><category term="svn"/><category term="tomcat"/><category term="ubuntu"/><category term="ubuntu 16"/><category term="unix"/><category term="version"/><category term="web"/><category term="web start"/><title type='text'>Maciel Escudero Bombonato</title><subtitle type='html'>TI com foco em desenvolvimento.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><blogger:adultContent>true</blogger:adultContent><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-5301305044770623267</id><published>2021-08-03T16:48:00.003-03:00</published><updated>2021-08-03T16:48:54.485-03:00</updated><title type='text'>Novo endereço</title><content type='html'>Estou atualizando este endereço apenas:&amp;nbsp;&lt;a href=&quot;https://bombonato.net&quot;&gt;bombonato.net&lt;/a&gt;&amp;nbsp;</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/5301305044770623267/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2021/08/novo-endereco.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5301305044770623267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5301305044770623267'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2021/08/novo-endereco.html' title='Novo endereço'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-1261602261190086788</id><published>2016-10-18T10:52:00.000-02:00</published><updated>2016-10-18T10:52:00.326-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="notification"/><category scheme="http://www.blogger.com/atom/ns#" term="notificação"/><category scheme="http://www.blogger.com/atom/ns#" term="rocket"/><category scheme="http://www.blogger.com/atom/ns#" term="rocket.chat"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu 16"/><title type='text'>Rocket.chat no Ubuntu 16: problemas nas notificações</title><content type='html'>Mais uma da linha para lembrança futura.&lt;br /&gt;
&lt;br /&gt;
Quando atualizei minha máquina para o ubuntu 16 o rocket.chat começou a enviar as mensagens de notificação no formato de alerts clássicos (o que atrapalha bastante).&lt;br /&gt;
&lt;br /&gt;
Procurando por uma solução para este problema, achei o seguinte post:&amp;nbsp;&lt;a href=&quot;http://askubuntu.com/questions/766306/notifications-not-showing-up-properly-in-slack-and-other-electron-apps&quot; target=&quot;_blank&quot;&gt;http://askubuntu.com/questions/766306/notifications-not-showing-up-properly-in-slack-and-other-electron-apps&lt;/a&gt;&amp;nbsp;que basicamente indica que devemos executar o seguinte no console:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; $ sudo touch /usr/lib/libunity-electron_notification_fix&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Funcionou perfeitamente e as notificações passaram a ser aquelas &quot;bunitinhas&quot; no canto da tela.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/1261602261190086788/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2016/10/rocketchat-no-ubuntu-16-problemas-nas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/1261602261190086788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/1261602261190086788'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2016/10/rocketchat-no-ubuntu-16-problemas-nas.html' title='Rocket.chat no Ubuntu 16: problemas nas notificações'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-7062525798489327237</id><published>2016-09-05T14:54:00.000-03:00</published><updated>2016-09-05T14:54:09.593-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="macosx"/><category scheme="http://www.blogger.com/atom/ns#" term="osx"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh key"/><category scheme="http://www.blogger.com/atom/ns#" term="sshkey"/><category scheme="http://www.blogger.com/atom/ns#" term="unix"/><title type='text'>Copiar chave pública SSH sem precisar do tradicional copy/paste</title><content type='html'>Bom, este micro artigo é mais um da série &quot;vou precisar disso denovo, mas vou esquecer&quot;.&lt;br /&gt;
&lt;br /&gt;
Depois que geramos uma chave SSH em uma máquina unix:&lt;br /&gt;
&lt;br /&gt;
$ &lt;b&gt;ssh-keygen -t rsa&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Vamos precisar copiar a chave pública para inserí-la em alguns lugares.&lt;br /&gt;
&lt;br /&gt;
Bom, existe um comandinho mágico no OS X que faz com que não precisemos selecionar, e usar o Ctrl+C (Cmd+C no OS X) para pegar o conteúdo da chave, para isso basta usar o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
$ &lt;b&gt;cat ~/.ssh/id_rsa.pub | pbcopy&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
O pbcopy faz todo o trabalho sujo de copiar o conteúdo que devemos colocar no github (por exemplo).&lt;br /&gt;
&lt;br /&gt;
Beleza, bora fazer isso no Linux então. SQN.&lt;br /&gt;
&lt;br /&gt;
Para que isso funcione no linux (sim, existe similar), é necessário:&lt;br /&gt;
&lt;br /&gt;
1- Instalar o xclip (ele faz um trabalho similar):&lt;br /&gt;
&lt;br /&gt;
$ &lt;b&gt;sudo apt-get install xclip&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
2- Agora (eu recomendo) é só criar um alias no seu arquivo de profile (&lt;b&gt;.profile&lt;/b&gt; ou &lt;b&gt;.bashrc&lt;/b&gt; dentro da pasta home do seu usuário), para isso, adicione a seguinte linha em um desses arquivos:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;alias pbcopy=&quot;xclip -selection clipboard&quot;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Depois, no terminal execute o seguinte comando (supondo que isso foi inserido no &lt;b&gt;.bashrc&lt;/b&gt;):&lt;br /&gt;
&lt;br /&gt;
$ &lt;b&gt;source ~/.bashrc&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Agora é só ficar feliz e utilizar no seu linux o mesmo comando feito no OS X.&lt;br /&gt;
&lt;br /&gt;
OBS.: Depois de executar o comando é só ir até o local necessário e colar o conteúdo.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/7062525798489327237/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2016/09/copiar-chave-publica-ssh-sem-precisar.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/7062525798489327237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/7062525798489327237'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2016/09/copiar-chave-publica-ssh-sem-precisar.html' title='Copiar chave pública SSH sem precisar do tradicional copy/paste'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-5414321854875920543</id><published>2016-08-31T21:45:00.002-03:00</published><updated>2016-08-31T21:47:40.316-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="933sn"/><category scheme="http://www.blogger.com/atom/ns#" term="configurar"/><category scheme="http://www.blogger.com/atom/ns#" term="dual head"/><category scheme="http://www.blogger.com/atom/ns#" term="mac osx"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung"/><category scheme="http://www.blogger.com/atom/ns#" term="second display"/><category scheme="http://www.blogger.com/atom/ns#" term="segundo monitor"/><title type='text'>Problemas com segundo monitor no Mac OS X</title><content type='html'>Há um bom tempo não escrevo, na verdade, uso o blog só pra servir como referência futura (pra quando eu esquecer de algo que seria bom lembrar. rs).&lt;br /&gt;
&lt;br /&gt;
Então, Maciel, caso você tenha esquecido como se faz isso de novo, lá vai.&lt;br /&gt;
&lt;br /&gt;
Caso alguém mais esteja lendo e usa o Mac OS X e tem um monitor Samsung SyncMaster 933sn (não recomendo, monitor zuadinho).&lt;br /&gt;
&lt;br /&gt;
Seu Mac OS provavelmente não vai detectar a resolução mais apropriada para o monitor e de quebra vai te empurrar um 800x600 (sim, é verdade).&lt;br /&gt;
&lt;br /&gt;
A dica é:&lt;br /&gt;
&lt;br /&gt;
Vá nas configurações de monitor (Displays) em preferências do sistema. Isso fará com que duas telas se abram, uma delas no monitor zuado. Bom, a opção Default for display provavelmente estará selecionada, nesse momento, segure a tecla option (alt) e depois clique em Scaled.&lt;br /&gt;
&lt;br /&gt;
Para esse monitor a melhor opção seria 1360x768 (não tem essa no Mac) a melhor opção que achei (que funcionou) foi 1280x768. Fica um pouco distorcido, mas dá pra ler log de console de boa. ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBakIvi95wGSJUSnf_DkyRCiC1U8FtbWsQvT4pgKc8jbaczakWex2_TSfljzndcx-4V7IMuHCzIk3WfBC95Zm1UuHaK_eZGa2LCIj7PCbWny1UQ4YSIKUTBees7OVuTmrWhMZRs74Ww48/s1600/Screen+Shot+2016-08-31+at+9.44.16+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;216&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBakIvi95wGSJUSnf_DkyRCiC1U8FtbWsQvT4pgKc8jbaczakWex2_TSfljzndcx-4V7IMuHCzIk3WfBC95Zm1UuHaK_eZGa2LCIj7PCbWny1UQ4YSIKUTBees7OVuTmrWhMZRs74Ww48/s320/Screen+Shot+2016-08-31+at+9.44.16+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/5414321854875920543/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2016/08/problemas-com-segundo-monitor-no-mac-os.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5414321854875920543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5414321854875920543'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2016/08/problemas-com-segundo-monitor-no-mac-os.html' title='Problemas com segundo monitor no Mac OS X'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBakIvi95wGSJUSnf_DkyRCiC1U8FtbWsQvT4pgKc8jbaczakWex2_TSfljzndcx-4V7IMuHCzIk3WfBC95Zm1UuHaK_eZGa2LCIj7PCbWny1UQ4YSIKUTBees7OVuTmrWhMZRs74Ww48/s72-c/Screen+Shot+2016-08-31+at+9.44.16+PM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-4573626162883063369</id><published>2015-07-24T13:03:00.000-03:00</published><updated>2015-07-24T13:06:18.654-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intelliJ"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JVMVersion"/><category scheme="http://www.blogger.com/atom/ns#" term="legacy"/><category scheme="http://www.blogger.com/atom/ns#" term="mac osx"/><title type='text'>IntelliJ IDEA rodando com JVM mais nova no MAC OS X </title><content type='html'>Caso tenha atualizado seu MAC OS X e após isso passou a receber a mensagem que o IntelliJ IDEA precisa rodar em uma versão legada (legacy) da JVM, a solução para mim foi a seguinte.&lt;br /&gt;
&lt;br /&gt;
No terminal:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
cd&amp;nbsp;/Applications/IntelliJ\ IDEA\ 14.app/Contents&lt;br /&gt;
vi Info.plist&lt;/blockquote&gt;
&lt;br /&gt;
OBS.: O número 14 no caminho acima é a versão do meu IntelliJ, mude esse número para a sua versão da aplicação.&lt;br /&gt;
&lt;br /&gt;
Após isso, digite &quot;&lt;span style=&quot;background-color: #eeeeee; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; line-height: 16.8999996185303px;&quot;&gt;/&lt;/span&gt;&quot; para habilitar a busca e em seguida digite &quot;&lt;span style=&quot;background-color: #eeeeee; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; line-height: 16.8999996185303px;&quot;&gt;JVMVersion&quot;&lt;/span&gt;&amp;nbsp;e &quot;&lt;span style=&quot;background-color: #eeeeee; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; line-height: 16.8999996185303px;&quot;&gt;enter&lt;/span&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Note que logo abaixo da string encontrada vc verá a versão 1.6*. Mude o 6 por 8 e em seguida salve o documento &quot;&lt;span style=&quot;background-color: #eeeeee; color: #222222; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; line-height: 16.8999996185303px;&quot;&gt;esc + wq + enter&lt;/span&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Tente abrir o Intellij novamente. ;-)</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/4573626162883063369/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2015/07/intellij-idea-rodando-com-jvm-mais-nova.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/4573626162883063369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/4573626162883063369'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2015/07/intellij-idea-rodando-com-jvm-mais-nova.html' title='IntelliJ IDEA rodando com JVM mais nova no MAC OS X '/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-6989125007302255589</id><published>2013-08-27T15:34:00.002-03:00</published><updated>2013-08-27T15:34:27.038-03:00</updated><title type='text'>Problemas com upload de arquivos utilizando spring MVC</title><content type='html'>Só uma dica rápida para aquele caso que está tudo certo e quando o Spring valida o conteúdo do campo de arquivos e vc recebe a seguinte mensagem:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;Failed to convert property value of type &#39;java.lang.String&#39; to required type &#39;org.springframework.web.multipart.MultipartFile&#39; for property &#39;XXX&#39;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Confirme se o formulário está com a propriedade enctype...
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;form action=&quot;URL/&quot; enctype=&quot;multipart/form-data&quot; id=&quot;form&quot; method=&quot;post&quot;&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Este pequeno detalhe causou o erro acima. ;-)</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/6989125007302255589/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2013/08/problemas-com-upload-de-arquivos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/6989125007302255589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/6989125007302255589'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2013/08/problemas-com-upload-de-arquivos.html' title='Problemas com upload de arquivos utilizando spring MVC'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-6580099868932584639</id><published>2013-03-26T16:16:00.001-03:00</published><updated>2013-03-26T16:16:19.188-03:00</updated><title type='text'>Apache não sobe na porta 80</title><content type='html'>Instalei o Apache algumas vezes pra rodar algumas aplicações de teste no meu ambiente de desenvolvimento.&lt;br /&gt;
Normalmente eu não conseguia fazer com que ele subisse na porta 80 até descobrir que o Skype era o responsável por isso (o próprio Apache entrega isso).&lt;br /&gt;
Pra acabar com este conflito, no Skype, vá até Ferramentas, Opções e Conexão, em seguida desative o primeiro check box (como na imagem abaixo), clique em salvar e reinicie o skype.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6oeplcvNlZSjK2cQJ7x7YunsvO7mFGjTeMmW-r_FZJkVm2stM85uVwt-kTwqOFRDzsxDy4w8pUld51lD_5qBy-af7FzhAkCrlDZ795cZcbeOopp_-WhBmxL7B0fYT_lMlvkoUREth8NI/s1600/skype-conf.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6oeplcvNlZSjK2cQJ7x7YunsvO7mFGjTeMmW-r_FZJkVm2stM85uVwt-kTwqOFRDzsxDy4w8pUld51lD_5qBy-af7FzhAkCrlDZ795cZcbeOopp_-WhBmxL7B0fYT_lMlvkoUREth8NI/s1600/skype-conf.PNG&quot; height=&quot;341&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Agora este não é mais um problema para subir o Apache.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/6580099868932584639/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2013/03/apache-nao-sobe-na-porta-80.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/6580099868932584639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/6580099868932584639'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2013/03/apache-nao-sobe-na-porta-80.html' title='Apache não sobe na porta 80'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6oeplcvNlZSjK2cQJ7x7YunsvO7mFGjTeMmW-r_FZJkVm2stM85uVwt-kTwqOFRDzsxDy4w8pUld51lD_5qBy-af7FzhAkCrlDZ795cZcbeOopp_-WhBmxL7B0fYT_lMlvkoUREth8NI/s72-c/skype-conf.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-5029465077834559132</id><published>2013-03-12T20:44:00.000-03:00</published><updated>2013-03-12T20:44:45.256-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chosen"/><category scheme="http://www.blogger.com/atom/ns#" term="error"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="search"/><title type='text'>jquery-chosen - Busca de termos não funciona</title><content type='html'>Incluindo o chosen em algumas de minhas páginas (sistemas) notei que um probleminha estava acontecendo. Toda vez que eu tentava preencher com alguns caracteres para ele filtrar os termos e facilitar minha escolha eu recebia a mensagem de que o termo não foi encontrado, porém, quando o termo possuia mais de uma palavra e eu preenchia os caracteres relativos a esta segunda palavra, a busca funcionava.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A solução para isso é bem simples, basta retirar a identação deste ponto da página, por exemplo, quando colocado conforme abaixo:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;code&gt;
&amp;lt;option&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; Valor a escolher&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;lt;/option&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Se você preencher o termo de busca com &quot;esco&quot; ele vai encontrar o termo, porém, se colocar &quot;valo&quot; o termo não será encontrado.&lt;br /&gt;
&lt;br /&gt;
Agora, sem a identação:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;code&gt;&amp;lt;option&amp;gt;Valor a escolher&amp;lt;/option&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
A busca funciona normalmente.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/5029465077834559132/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2013/03/jquery-chosen-busca-de-termos-nao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5029465077834559132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5029465077834559132'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2013/03/jquery-chosen-busca-de-termos-nao.html' title='jquery-chosen - Busca de termos não funciona'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Campinas - São Paulo, República Federativa do Brasil</georss:featurename><georss:point>-22.9071048 -47.063239100000033</georss:point><georss:box>-23.3751808 -47.70868610000003 -22.4390288 -46.417792100000035</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-6115201803820447978</id><published>2012-11-19T14:05:00.002-02:00</published><updated>2012-11-19T14:07:51.988-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="auditoria"/><category scheme="http://www.blogger.com/atom/ns#" term="hibernate"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jpa"/><category scheme="http://www.blogger.com/atom/ns#" term="log"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><title type='text'>Log de Auditoria - JPA + Spring</title><content type='html'>Vira e volta, aparecem sistemas onde é necessário fazer um esquema de log de auditoria para uma tabela ou várias.&lt;br /&gt;
&lt;br /&gt;
Montei um esquema que pode ser facilmente extendido para outras tabelas do sistema, para fazê-lo, basta seguir os passos abaixo:&lt;br /&gt;
&lt;br /&gt;
1- &lt;b&gt;Criar um enum para representar as ações de banco&lt;/b&gt;:&lt;br /&gt;
&lt;code&gt;
public enum TransactionType {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATE, UPDATE, DELETE;&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
2- &lt;b&gt;Criar a entidade de log de auditoria&lt;/b&gt;:&lt;br /&gt;
&lt;code&gt;
@Entity&lt;br /&gt;
@Table(name = &quot;log_trace&quot;)&lt;br /&gt;
@AttributeOverride(name = &quot;id&quot;, column = @Column(name = &quot;log_trace_id&quot;))&lt;br /&gt;
public class LogTrace extends BaseEntity {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = &quot;transaction_type&quot;, nullable = false)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Enumerated(EnumType.STRING)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private TransactionType transactionType;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = &quot;entity_name&quot;, nullable = false)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String entityName;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = &quot;registry_id&quot;, nullable = false)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private Long registryId;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Column(name = &quot;operation_date&quot;, nullable = false)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Temporal(TemporalType.TIMESTAMP)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private Date operationDate;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@ManyToOne(fetch = FetchType.LAZY)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@JoinColumn(name = &quot;executed_by&quot;, nullable = false)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private User executedBy;&lt;br /&gt;
&lt;br /&gt;
...getters e setters...&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
3- &lt;b&gt;Criar o repositório (DAO) e o serviço como está sendo feito no restante do sistema&lt;/b&gt;;&lt;br /&gt;
&lt;br /&gt;
4- &lt;b&gt;Criar o listener que será disparado pelo hibernate&lt;/b&gt;:&lt;br /&gt;
&lt;code&gt;
public class LogTraceListener {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Autowired&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogTraceService logTraceService;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; @Autowired&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UserService userService;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@PostRemove&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void postDelete(BaseEntity e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createLog(TransactionType.DELETE, e);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@PostPersist&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void postPersist(BaseEntity e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createLog(TransactionType.CREATE, e);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@PostUpdate&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void postUpdate(BaseEntity e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;createLog(TransactionType.UPDATE, e);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private void createLog(TransactionType transactionType, BaseEntity e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * OBSERVAÇÃO 1.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (logTraceService == null) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTraceService = (LogTraceService) ctx.getBean(&quot;logTraceService&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * OBSERVAÇÃO 2.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;User user = userService.getAuthenticatedUser();&lt;br /&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogTrace logTrace = new LogTrace();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * OBSERVAÇÃO 3.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String entityName = e.getClass().getAnnotation(Table.class).name();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (entityName == null || entityName.isEmpty()) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entityName = e.getClass().getSimpleName();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTrace.setTransactionType(transactionType);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTrace.setEntityName(entityName);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTrace.setRegistryId(e.getId());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTrace.setExecutedBy(user);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTrace.setOperationDate(new Date());&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logTraceService.save(logTrace);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Observações&lt;/b&gt;:&lt;br /&gt;
1- O listener é disparado pelo mecanismo JPA. Uma vez que a classe não foi instanciada pelo Spring, as dependências não são injetadas e para resolver isso, podemos usar aspéctos (AOP) ou uma abordagem mais simples como a feita acima;&lt;br /&gt;
2- A lógica de recuperação do usuário logado (via consulta ou busca na sessão) está no serviço neste caso;&lt;br /&gt;
3- Alguns projetos adotam o uso da anotação &lt;code&gt;@Table&lt;/code&gt;, neste listener, coloquei uma lógica que abrange esta abordagem (como principal) e se não for o caso, o campo receberá o nome da entidade, por exemplo, &quot;PedidoInterno&quot;, ao invés de &quot;pedido_interno&quot; (que é a forma como os bancos normalmente são modelados. Veja que nossa &quot;LogTrace&quot; teria o campo salvo como &quot;log_trace&quot;;&lt;br /&gt;
&lt;br /&gt;
5-&amp;nbsp;&lt;b&gt;Anotar entidades que devem ser auditadas&lt;/b&gt;:&lt;br /&gt;
As entidades que devem ser auditadas recebem a anotação&amp;nbsp;&lt;code&gt;@EntityListeners(value = LogTraceListener.class)&lt;/code&gt;. Para melhorar a leitura da classe, indico colocar esta anotação logo após a anotação &lt;code&gt;@Entity&lt;/code&gt; ou &lt;code&gt;@Table(name = &quot;minha_entidade&quot;)&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
Com isso, sempre que uma das operações monitoradas pelo listener acontecer, são as anotações que estão sobre os métodos:&amp;nbsp;&lt;code&gt;@PostPersist,&amp;nbsp;@PostUpdate e&amp;nbsp;@PostRemove&lt;/code&gt;, um registro será gerado na tabela de log de auditoria.&lt;br /&gt;
&lt;br /&gt;
Para que outra tabela/entidade seja autitada, basta repetir o passo 5 (incluir a anotação na entidade).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NOTA&lt;/b&gt;: Normalmente as entidades de um sistema extendem uma entidade base ou implementam uma interface para que um padrão &quot;mínimo&quot; seja seguido. Este exemplo foi construído considerando este caso, ou seja, as entidades extendem &lt;code&gt;BaseEntity&lt;/code&gt;.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/6115201803820447978/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/11/log-de-auditoria-jpa-spring.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/6115201803820447978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/6115201803820447978'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/11/log-de-auditoria-jpa-spring.html' title='Log de Auditoria - JPA + Spring'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-1021830861037866799</id><published>2012-09-17T16:04:00.000-03:00</published><updated>2012-09-17T16:05:54.119-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="tomcat"/><title type='text'>App web Java + Maven não roda no ecplise</title><content type='html'>Imagine que você desenvolveu uma aplicação java com maven e versionou ela em algum repositório da vida, por exemplo, github, e ao instalá-la em outro computador ela apresenta a seguinte mensagem quando o servidor sobe:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;default prettyprint&quot; style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; configuring application listener of &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; org&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;springframework&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;web&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;ContextLoaderListener&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Consultando este problema na internet achei a seguinte solução:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px;&quot;&gt;Abre as propriedades do projeto (botão direito no projeto e propriedades);&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px;&quot;&gt;Selecione &quot;&lt;i&gt;Deployment Assembly&lt;/i&gt;&quot;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px;&quot;&gt;Clique em &quot;&lt;i&gt;Add...&lt;/i&gt;&quot;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px;&quot;&gt;Selecione &quot;&lt;i&gt;Java Build Path Entries&lt;/i&gt;&quot; e clique em &quot;&lt;i&gt;Next&lt;/i&gt;&quot;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px;&quot;&gt;Selecione &quot;&lt;i&gt;Maven Dependencies&lt;/i&gt;&quot; e clique &quot;&lt;i&gt;Finish&lt;/i&gt;&quot;;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
Reinicie seu servidor tomcat e veja que agora funciona.&lt;br /&gt;
&lt;br /&gt;
Essas dicas foram retiradas do post&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com/questions/6210757/java-lang-classnotfoundexception-org-springframework-web-context-contextloaderl&quot; target=&quot;_blank&quot;&gt;6210757 - java-lang-classnotfoundexception-org-springframework-web-context-contextloaderl no stackoverflow.com&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/1021830861037866799/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/09/app-web-java-maven-nao-roda-no-ecplise.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/1021830861037866799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/1021830861037866799'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/09/app-web-java-maven-nao-roda-no-ecplise.html' title='App web Java + Maven não roda no ecplise'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-1119814574291762288</id><published>2012-07-18T10:56:00.003-03:00</published><updated>2012-09-17T16:06:39.370-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="faces"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><category scheme="http://www.blogger.com/atom/ns#" term="web"/><title type='text'>JSF - Página de erro após sessão expirada?</title><content type='html'>Eu estava pegando sempre uma página de erro após muito tempo de inatividade em uma aplicação JSF ou quando reiniciava o servidor e clicava em algum link na página.&lt;br /&gt;
&lt;br /&gt;
Para resolver esse problema chato, usei as seguintes linhas no &lt;b&gt;web.xml&lt;/b&gt; da aplicação.
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;error-page&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;exception-type&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.faces.application.ViewExpiredException&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/exception-type&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;location&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /index.html &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/location&amp;gt;&lt;br /&gt;
&amp;lt;/error-page&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
Com essas linhas no &lt;b&gt;web.xml&lt;/b&gt; a aplicação ao invés de exibir a página de erro quando a view estiver expirada, vai redirecionar o usuário para a página indicada.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/1119814574291762288/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/07/jsf-pagina-de-erro-apos-sessao-expirada.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/1119814574291762288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/1119814574291762288'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/07/jsf-pagina-de-erro-apos-sessao-expirada.html' title='JSF - Página de erro após sessão expirada?'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-8811180531174927597</id><published>2012-07-18T10:29:00.003-03:00</published><updated>2012-09-17T16:07:16.791-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="faces"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><category scheme="http://www.blogger.com/atom/ns#" term="redirect"/><title type='text'>JSF - URL não muda após redirect?</title><content type='html'>Em situações que um método retorna a url de redirect da sua página, como por exemplo:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;
public String listar() {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return &quot;/pages/list.xhtml&quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
E o JSF não muda a URL na barra do browser, recomendo a inclusão da seguinte string após a url:&amp;nbsp;&amp;nbsp;+ &quot;?faces-redirect=true&quot;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ficando:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;
public String listar() {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; return &quot;/pages/list.xhtml&quot;&amp;nbsp;&amp;nbsp;+ &quot;?faces-redirect=true&quot;;&lt;br /&gt;
}
&lt;/code&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Fazendo isso, a URL sempre vai mudar. ;-)&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/8811180531174927597/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/07/jsf-url-nao-muda-apos-redirect.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/8811180531174927597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/8811180531174927597'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/07/jsf-url-nao-muda-apos-redirect.html' title='JSF - URL não muda após redirect?'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-3349554615348745984</id><published>2012-04-15T04:30:00.000-03:00</published><updated>2012-04-15T19:13:59.576-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="annotation"/><category scheme="http://www.blogger.com/atom/ns#" term="anotação"/><category scheme="http://www.blogger.com/atom/ns#" term="component"/><category scheme="http://www.blogger.com/atom/ns#" term="dependency injection"/><category scheme="http://www.blogger.com/atom/ns#" term="injeção de dependencia"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jsf"/><category scheme="http://www.blogger.com/atom/ns#" term="managed bean"/><category scheme="http://www.blogger.com/atom/ns#" term="managed property"/><category scheme="http://www.blogger.com/atom/ns#" term="spring"/><title type='text'>JSF 2.0 + Spring - Injeção de Dependência (DI)</title><content type='html'>Estou desenvolvendo uma aplicação utilizando JSF 2.0, Hibernate, Spring 3, etc...&lt;br /&gt;
&lt;br /&gt;
No caso, procurei utilizar anotações e acabei cometendo um equívoco na escolha das anotações que a principio, não gerou problema, porém, quando testei multiplos acessos à aplicação, os problemas começaram a aparecer, como por exemplo, um usuário invalidando a sessão do outro.&lt;br /&gt;
&lt;br /&gt;
O ponto é que eu estava usando a anotação &lt;b&gt;@Component&lt;/b&gt;(&quot;nomeBean&quot;) nos beans gerenciados e &lt;b&gt;@Autowired&lt;/b&gt; para fazer o trabalho de DI (anotações do Spring).&lt;br /&gt;
&lt;br /&gt;
Pesquisando para resolver o problema, cheguei ao seguinte resultado:&lt;br /&gt;
&lt;br /&gt;
- Ao invés de:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&lt;b&gt;@Component&lt;/b&gt;(&quot;nomeBean&quot;)
&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
- Use:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&lt;b&gt;@ManagedBean&lt;/b&gt;(name=&quot;nomeBean&quot;)
&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
- e ao invés de:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&lt;b&gt;@Autowired
&lt;/b&gt;&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
- Use:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&lt;b&gt;@ManagedProperty&lt;/b&gt;(value=&quot;#{nomeBeanInjetar}&quot;)
&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilizarei como exemplo uma classe usuário recebendo a injeção de um UsuarioDAO.
&lt;br /&gt;
&lt;br /&gt;
- Implentação do UsuarioDAO que deverá ser injetado no objeto usuarioController, que é meu managed bean:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&lt;b&gt;@Component&lt;/b&gt;(&quot;&lt;b&gt;usuarioDAO&lt;/b&gt;&quot;)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
public class UsuarioDAO implements IUsuarioDAO {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
...&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
- Classe que receberá a injeção:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&lt;b&gt;@ManagedBean&lt;/b&gt;(name=&quot;usuarioController&quot;)&lt;br /&gt;
@SessionScoped&lt;br /&gt;
public class UsuarioController {&lt;br /&gt;
&lt;br /&gt;
    &lt;b&gt;@ManagedProperty&lt;/b&gt;(value=&quot;#{&lt;b&gt;usuarioDAO&lt;/b&gt;}&quot;)&lt;br /&gt;
    private IUsuarioDAO usuarioDao;&lt;br /&gt;
&lt;br /&gt;
    public void setUsuarioDAO(IUsuarioDAO usuarioDAO) {&lt;br /&gt;
        this.usuarioDAO = usuarioDAO;&lt;br /&gt;
    }&lt;br /&gt;
...&lt;/code&gt;&lt;/blockquote&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
Note que na abordagem acima estou usando anotações do JSF (@ManagedBean e @ManagedProperty) e anotações do Spring.&lt;br /&gt;
&lt;br /&gt;
A ideia é a seguinte:&lt;br /&gt;
- Criamos os objetos que serão reutilizados mais adiante sendo injetados em nossos managed beans, esses objetos devem ser marcados como componentes e nesse momento, devemos dar um nome a ele, nesse processo, o Spring vai criar este objeto em memória e deixá-lo pronto para ser injetado quando for chamado;&lt;br /&gt;
- O segundo passo é no nosso managed bean que devemos identificar a propriedade com a anotação @ManagedProperty e informar qual será o objeto que deverá ser injetado usando o mesmo nome dado anteriormente;&lt;br /&gt;
&lt;br /&gt;
Bom, seguindo o padrão de posts rápidos e dirétos, basicamente foi isso que me ajudou bastante.&lt;br /&gt;
&lt;br /&gt;
OBS.:&lt;br /&gt;
1. Quando utilizada a anotação &lt;b&gt;@ManagedProperty&lt;/b&gt;, o atributo deve possuir um &lt;b&gt;setter&lt;/b&gt; associado a ele, como no exemplo acima;&lt;br /&gt;
&lt;br /&gt;
2. Quando ainda não tinha notado que o erro era este, procurei coisas estáticas na aplicação e por ai vai, então, fica a dica;&lt;br /&gt;
&lt;br /&gt;
Espero ter ajudado e até a próxima.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/3349554615348745984/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/04/jsf-20-spring-injecao-de-dependencia-di.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/3349554615348745984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/3349554615348745984'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/04/jsf-20-spring-injecao-de-dependencia-di.html' title='JSF 2.0 + Spring - Injeção de Dependência (DI)'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-5699764797675319259</id><published>2012-03-30T02:11:00.000-03:00</published><updated>2012-04-26T16:52:04.654-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="criar projeto"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="linha de comando"/><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><title type='text'>Alguns comandos úteis para utilizar MAVEN</title><content type='html'>Abaixo vou listar algumas linhas de comando que podem ajudar no desenvolvimento de aplicações que usam MAVEN:&lt;br /&gt;
&lt;br /&gt;
- Criar uma aplicação:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn archetype:generate -DgroupId=br.com.meusistema -DartifactId=AppExemplo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Na primeira vez que este processo é executado, as coisas demoram um pouco por que o maven vai baixar meia internet no repositório local que ele cria na máquina.&lt;br /&gt;
&lt;br /&gt;
Terminado o processo, você verá que o maven criou uma pasta com o nome que foi utilizado no artifactId, no nosso exemplo, &quot;AppExemplo&quot; &lt;br /&gt;
&lt;br /&gt;
Depois disso, para que este projeto possa ser aberto no eclipse fácil, fácil, o comando é:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ cd AppExemplo&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
E dentro do diretório da aplicação:
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn eclipse:clean&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn eclipse:eclipse&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
ou &lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn eclipse:m2eclipse&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Na primeira vez deve demorar um pouco também.&lt;br /&gt;
&lt;br /&gt;
Depois, basta importar o projeto no eclipse e seguir a vida.&lt;br /&gt;
&lt;br /&gt;
Estou disponibilizando abaixo uma lista de comandos que normalmente uso.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn clean&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn compile&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ mvn install&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Pretendo em uma hora com calma editar este post e incluir mais detalhes sobre cada operação descrita e incluir mais algumas que costumo usar.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/5699764797675319259/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/03/alguns-comandos-uteis-para-utilizar.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5699764797675319259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/5699764797675319259'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/03/alguns-comandos-uteis-para-utilizar.html' title='Alguns comandos úteis para utilizar MAVEN'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Centro, Santa Bárbara D Oeste - São Paulo, 13450-010, Brasil</georss:featurename><georss:point>-22.7524127 -47.4135072</georss:point><georss:box>-22.7560737 -47.4184427 -22.7487517 -47.408571699999996</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-2052803097374242057</id><published>2012-02-28T21:43:00.001-03:00</published><updated>2012-02-28T21:45:47.884-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="motorola defy"/><category scheme="http://www.blogger.com/atom/ns#" term="root device"/><title type='text'>Motorola defy rooting android 2.2.1</title><content type='html'>Eu estava pesquisando na net formas de obter acesso root no meu defy com android 2.2.1 e achei o seguinte post:&lt;br /&gt;
- &lt;a href=&quot;http://www.androidz.com.br/forum/topic/7395-rom-cyanogenmod-7-237-defy/&quot; target=&quot;_blank&quot; title=&quot;[Rom] Cyanogenmod 7 - 2.3.7 Defy &quot;&gt;[Rom] Cyanogenmod 7 – 2.3.7 Defy&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Este foi o post mais completo, fácil e seguro que achei de realizar o
 processo, inclusive, para quem quiser fazer a atualização para o 
android 2.3.7 custom ROM cm7, pra mim funcionou muito bem e o aparelho 
fica muito, mas muito melhor mesmo.&lt;br /&gt;
&lt;br /&gt;
Para evitar o risco dos links do post do amigo quebrarem, eu baixei 
aqui os arquivos necessários para fazer o root e o boot de configuração:&lt;br /&gt;
- &lt;a href=&quot;http://macielbombonato.files.wordpress.com/2012/02/gingerbreak-1-apk.gif&quot; target=&quot;_blank&quot; title=&quot;GingerBreak&quot;&gt;GingerBreak&lt;/a&gt;&lt;br /&gt;
- &lt;a href=&quot;http://macielbombonato.files.wordpress.com/2012/02/sndinitdefy-1-4-2-apk.gif&quot; target=&quot;_blank&quot; title=&quot;SndInitDefy-1.4.2&quot;&gt;SndInitDefy-1.4.2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Obs.:&lt;br /&gt;
- Para baixar os arquivos, clique com o botão direito no link e em seguida, “Salvar link Como”;&lt;br /&gt;
- Retire a extenção GIF antes de utilizar os arquivos e conserve a extenção apk;&lt;br /&gt;
- Para o rooting, use apenas o GingerBreak, o outro link será necessário apenas para iniciar o processo de troca de ROM;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Para fazer o rooting é muito simples:&lt;/b&gt;&lt;br /&gt;
1. Copie os arquivos acima para seu SDCard (na raiz pra ficar mais fácil);&lt;br /&gt;
2. Vá em configurações, Aplicativos, Desenvolvimento e habilite a opção Depuração USB;&lt;br /&gt;
3. Com algum programa de exploração de pastas, como o ASTRO, por exemplo, localize o GingerBreak e execute-o;&lt;br /&gt;
4. Após a instalação, abra o programa e clique no primeiro botão (Root Device);&lt;br /&gt;
&lt;br /&gt;
Pronto, o processo de rooting vai se conduzir sozinho e reiniciará o aparelho.&lt;br /&gt;
&lt;br /&gt;
Eu aconselho que o vídeo do post mencionado acima seja visto, o artigo do camaradinha é muito bom e completo.&lt;br /&gt;
&lt;br /&gt;
OBS.: Para quem quiser instalar o CM7 seguindo o tutorial acima, após
 a instalação, use a banda da Claro mencionada no tutorial, eu sou 
usuário VIVO e pra mim funcionou perfeitamente com aquela opção. A banda
 “Viva” não funcionou muito bem.&lt;br /&gt;
Espero ter ajudado e fiquem a vontade pra comentar o post.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/2052803097374242057/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/motorola-defy-rooting-android-221.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/2052803097374242057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/2052803097374242057'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/motorola-defy-rooting-android-221.html' title='Motorola defy rooting android 2.2.1'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Santa Bárbara D Oeste - São Paulo, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.871826199999997 -47.5722885 -22.6375402 -47.256431500000005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-3863752832057617890</id><published>2012-02-28T21:39:00.003-03:00</published><updated>2012-02-28T21:46:33.039-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><title type='text'>CSS media type</title><content type='html'>Ao criar uma página HTML, é possível fazer com que o visual da página
 seja diferente para diversos tipos de dispositivos de apresentação.&lt;br /&gt;
&lt;br /&gt;
Uma forma bem simples de fazer isso é usando o parâmetro media ao criar o CSS na própria página ou no import de um arquivo CSS.&lt;br /&gt;
&lt;br /&gt;
Abaixo dois exemplos básicos:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
  &amp;lt;style type=&quot;text/css&quot; media=&quot;print&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;
    body {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
      Background-color: #FFFFFF;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;
    }&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  &amp;lt;/style&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  &amp;lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;
    body {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
      Background-color: #CCCCCC;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  &amp;lt;/style&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/blockquote&gt;
Isso fará com que o fundo da página seja branca na página de impressa
 (OBS.: Os browsers costumam vir por padrão com a opção de impressão de 
imagens e cores de fundo desabilitada, ou seja, se outra cor fosse 
colocada, com essa configuração padrão, o fundo permaneceria branco) e 
na tela o fundo será um tom de cinza.&lt;br /&gt;
&lt;br /&gt;
Quando não incluímos a opção media na criação do CSS, por padrão, 
seria como se tivessemos atribuido o valor “all” para esta propriedade.&lt;br /&gt;
&lt;br /&gt;
Para importar um arquivo de estilos, o padrão é o mesmo:
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/impressao.css&quot; media=&quot;print&quot;  /&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/tela.css&quot;      media=&quot;screen&quot; /&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/blockquote&gt;
Essa é a parte tranquila e básica da história, agora pode ocorrer a 
necessidade de fazer com que um HTML tenha que aparecer na tela de um 
jeito, ser impresso de outro e ainda ser enviado por email de outro 
jeito.&lt;br /&gt;
&lt;br /&gt;
Este terceiro ponto pode ser um problema.&lt;br /&gt;
&lt;br /&gt;
Navegando por sites a procura de coisas sobre o assunto encontrei o 
seguinte link que descreve um pouco a compatibilidade de cada programa 
de email com folhas de estilos:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.campaignmonitor.com/css/&quot; target=&quot;_blank&quot; title=&quot;Guide to CSS support in email&quot;&gt;Guide to CSS support in email&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Para alguns pode ser bastante desanimador ao ver isso, e uma solução 
simples de implementar que achei de fato é descepcionante, mas, 
funcionou no caso de páginas JSP.&lt;br /&gt;
&lt;br /&gt;
No meu caso, criei uma página JSP que recebe um parâmetro informando 
se ela será usada em um email ou não e ai, quando ela deverá ser 
utilizada no email ao invés de importar uma folha de estilos eu incluo o
 estilo diretamente no objeto, conforme exemplo abaixo:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
    ... Código&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;lt;td &amp;lt;%= email ? &quot;style=&#39;text-align: left;&#39;&quot; : &quot;class=&#39;tdDiferente&#39;&quot;%&amp;gt; &amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
    ... Código&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/blockquote&gt;
É uma forma bem chata de tratar isso, mas no meu caso foi eficiênte, caso alguém tenha mais sugestões, eu agradeço o envio.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/3863752832057617890/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/css-media-type.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/3863752832057617890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/3863752832057617890'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/css-media-type.html' title='CSS media type'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>R. Santa Bárbara, 582 - Centro, Santa Bárbara D Oeste - São Paulo, 13450-010, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.988846199999998 -47.730217 -22.5205202 -47.098503</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-2764459447152591274</id><published>2012-02-28T21:35:00.003-03:00</published><updated>2012-02-28T21:47:47.224-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jar"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="web start"/><title type='text'>Assinando um JAR (JAVA WEB START)</title><content type='html'>Toda vez que criamos uma aplicação Java Web Start e precisamos que 
esta aplicação tenha alguns acessos a máquina cliente, é necessário 
incluir no arquivo JNLP a seguinte instrução:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
&amp;lt;security&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;lt;all-permissions/&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
&amp;lt;/security&amp;gt;&lt;/code&gt;&lt;/blockquote&gt;
O problema é que feito isso, é necessário assinar os jars que estão 
na lista que deve ser entregue a máquina cliente, abaixo criei um 
tutorial bem simples de como fazer isso.&lt;br /&gt;
- Primeiro – no diretório onde estão os jars, digite a linha de comando que segue:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;keytool -genkey -alias macielbombonato -keystore macielbombonato.cert&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/blockquote&gt;
- Escolha a senha (minimo de 6 caracteres):&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
Enter keystore password:&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
Re-enter new password:&lt;/code&gt;&lt;/blockquote&gt;
- Responda o questionário:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
What is your first and last name?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [Unknown]: XXX&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
What is the name of your organizational unit?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [Unknown]: XXX&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
What is the name of your organization?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [Unknown]: XXX&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
What is the name of your City or Locality?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [Unknown]: XXX&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
What is the name of your State or Province?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [Unknown]: XX&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
What is the two-letter country code for this unit?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [Unknown]: XX&lt;/code&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;code&gt;Is CN=XXX, OU=XXX, O=XXX, L=XXX, ST=XX, C=XX correct?&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;
  [no]:  yes&lt;/code&gt;&lt;/blockquote&gt;
Esses passos acima vão criar um certificado na pasta onde os jars estão,
 agora é necessário assinar cada um dos jars com esse certificado, para 
isso, basta utilizar a linha de comando abaixo:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;jarsigner -verbose -keystore macielbombonato.cert -storepass 123456 -keypass 123456&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;MeuJarAssinadoWebStart.jar macielbombonato&lt;br /&gt;
&lt;/code&gt;&lt;/blockquote&gt;
Caso não queira incluir as senhas nas linhas de comando para assinar os jars, basta não utilizar os parâmetros &lt;code&gt;-storepass&lt;/code&gt; e &lt;code&gt;-keypass&lt;/code&gt;, com isso, a senha será solicitada antes do jar ser assinado.&lt;br /&gt;
&lt;br /&gt;
Dúvidas/Sugestões, por favor, comente este post.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/2764459447152591274/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/assinando-um-jar-java-web-start.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/2764459447152591274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/2764459447152591274'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/assinando-um-jar-java-web-start.html' title='Assinando um JAR (JAVA WEB START)'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Santa Bárbara D Oeste - São Paulo, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.871826199999997 -47.5722885 -22.6375402 -47.256431500000005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-8998967197141338845</id><published>2012-02-28T21:32:00.003-03:00</published><updated>2012-02-28T21:49:11.084-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="subversion"/><category scheme="http://www.blogger.com/atom/ns#" term="svn"/><title type='text'>Configure Proxy para subversion</title><content type='html'>Essa dica vale pra quem precisa configurar proxy para utilização do 
subversion no sistema operacional como um todo ou para a utilização do 
plugin do eclipse o subclipse.&lt;br /&gt;
&lt;br /&gt;
Para quem estiver utilizando o sistema operacional Windows, um amigo achou na net a seguinte referencia:&amp;nbsp;&lt;a href=&quot;http://ykyuen.wordpress.com/2010/03/09/eclipse-configure-proxy-for-subclipse/&quot; target=&quot;_blank&quot;&gt;http://ykyuen.wordpress.com/2010/03/09/eclipse-configure-proxy-for-subclipse/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Abaixo irei colocar o texto retirado deste site para o caso do post algum dia sair do ar.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;blockquote&gt;
&lt;i&gt;The Eclipse proxy setting does not apply on subclipse. So you cannot 
connect to a SVN repostory outside your firewall even you have set the 
proxy in Eclipse.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Luckily, i found the solution in MKVille Blog – Using Subclipse Behind a Proxy Server.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;For Windows XP user&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;    Open the C:\Documents and Settings\\Application Data\Subversion\servers&lt;br /&gt;
    Configure the http-proxy-host and http-proxy-port settings under the [global] tag&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;For Windows 7 user&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;    Open the C:\Users\\AppData\Roaming\Subversion\servers&lt;br /&gt;
    Configure the http-proxy-host and http-proxy-port settings under the [global] tag&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Done =)&lt;/i&gt; &lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Agora a pergunta, porque estou reescrevendo este post?&lt;br /&gt;
&lt;br /&gt;
Para dar a dica para quem usa mac (ou linux).&lt;br /&gt;
&lt;br /&gt;
No caso, basta realizar basicamente os mesmos passos que o autor do 
post original comentou, porém, usuários de mac devem usar o seguinte 
endereço:&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;code&gt;
/Users/[nome_do_usuario]/.subversion&lt;/code&gt;&lt;/blockquote&gt;
&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;
Agora só preciso arrumar um tempo pra montar uns scripts pra ativar e
 desativar o proxy para quem é consultor e vai e vem para clientes.&lt;br /&gt;
&lt;br /&gt;
Espero que este post ajude mais alguém.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/8998967197141338845/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/configure-proxy-para-subversion.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/8998967197141338845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/8998967197141338845'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/configure-proxy-para-subversion.html' title='Configure Proxy para subversion'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Santa Bárbara D Oeste - São Paulo, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.871826199999997 -47.5722885 -22.6375402 -47.256431500000005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-954851074829217157</id><published>2012-02-28T21:29:00.000-03:00</published><updated>2012-04-25T18:47:01.424-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="git"/><category scheme="http://www.blogger.com/atom/ns#" term="version"/><title type='text'>Utilizando Git (Versionador) local</title><content type='html'>Versionando um diretório com git.&lt;br /&gt;
Dentro do diretório executar o comando:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git init&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
E depois:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git status&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– Status do branch selecionado&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git branch&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– Exibe todos os branchs e marca com um asterisco o que está selecionado.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git add .&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– . (ponto) adiciona todos arquivos que estão pendentes&lt;br /&gt;
– [nome do arquivo] adiciona um arquivo específico&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git checkout -b [nome do branch]&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– Criar um branch&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git commit -am “[mensagem]“&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– Commit das alterações&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git checkout [nome do branch]&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
- Altera do branch atual para o branch mencionado&lt;br /&gt;
&lt;br /&gt;
– Para &quot;pegar&quot; as alterações do branch master para outro branch qualquer:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git checkout [nome do branch]&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git rebase master&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– Para &quot;mandar&quot; as informações de um branch qualquer para o master:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git checkout master&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git merge [nome do branch]&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
+ No caso do branch master ser remoto:&lt;br /&gt;
– Para atualizar seu master local:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git checkout master&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git pull origin master&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
– Para atualizar o branch master remoto com suas alterações locais:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git checkout master&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git push origin master&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Editado (25/04/2012) - Inclusão de repositório remoto.&lt;br /&gt;
&lt;br /&gt;
Os passos acima foram seguidos e o projeto está sendo versionado localmente apenas, porém, em dado momento eis que surge um servidor git para que o projeto seja versionado, neste caso, o git oferece recursos bem simples de alteração do repositório que o projeto deve apontar, para isso basta:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git remote add origin https://enderecodoseuservidor/aplicacao.git # Faz com que o host remoto git do seu projeto passe a ser este indicado na url&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;$ git push -u origin master # Para enviar os fontes para o branch master remoto pela primeira vez&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/954851074829217157/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/utilizando-git-versionador-local.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/954851074829217157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/954851074829217157'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/utilizando-git-versionador-local.html' title='Utilizando Git (Versionador) local'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>1</thr:total><georss:featurename>Santa Bárbara D Oeste - São Paulo, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.871826199999997 -47.5722885 -22.6375402 -47.256431500000005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-9050703082495872628</id><published>2012-02-28T21:26:00.000-03:00</published><updated>2012-02-28T21:51:55.012-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="diaspora"/><category scheme="http://www.blogger.com/atom/ns#" term="rails"/><category scheme="http://www.blogger.com/atom/ns#" term="RoR"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails"/><title type='text'>Instalação/Preparação do Diaspora para desenvolvimento</title><content type='html'>Primeiros passos, preparando a casa:&lt;br /&gt;
&lt;br /&gt;
Instalação do rvm:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;bash &amp;lt;  .rvmrc&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;cd .&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;rvm gemset create ‘diaspora’&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;cd ..&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;cd diaspora&lt;/b&gt;&lt;/blockquote&gt;
Confirme as mensagens que aparecem.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;bundle install&lt;/b&gt;&lt;/blockquote&gt;
Tire a palavra exemplo do nome do arquivo database.yml, certifique-se de
 que as configurações de banco de dados que estão no arquivo conferem 
com as da sua máquina.&lt;br /&gt;
&lt;br /&gt;
Tire a palavra exemplo do nome do arquivo app_config.yml.&lt;br /&gt;
&lt;br /&gt;
No terminal execute o comando:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;rake db:create db:migrate&lt;/b&gt;&lt;/blockquote&gt;
Pronto!&lt;br /&gt;
&lt;br /&gt;
Agora é só personalizar a aplicação.</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/9050703082495872628/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/instalacaopreparacao-do-diaspora-para.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/9050703082495872628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/9050703082495872628'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/instalacaopreparacao-do-diaspora-para.html' title='Instalação/Preparação do Diaspora para desenvolvimento'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Santa Bárbara D Oeste - São Paulo, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.871826199999997 -47.5722885 -22.6375402 -47.256431500000005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-3308670910116152155.post-8696654087912228668</id><published>2012-02-28T21:22:00.001-03:00</published><updated>2012-02-28T21:53:39.517-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mac osx"/><category scheme="http://www.blogger.com/atom/ns#" term="redis"/><title type='text'>Instalação Redis MacOS X e Linux em 30s</title><content type='html'>Acesse: &lt;a href=&quot;http://redis.io/%20&quot; target=&quot;_blank&quot;&gt;http://redis.io/ &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Baixe o último release em algum local da sua máquina.&lt;br /&gt;
&lt;br /&gt;
Descompacte e via terminal execute o seguite comando na pasta do redis.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;sudo make install&lt;/b&gt;&lt;/blockquote&gt;
Após a conclusão da instalação, basta executar o comando:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;redis-server&lt;/b&gt;&lt;/blockquote&gt;
Pronto!&lt;br /&gt;
&lt;br /&gt;
Pré requisitos:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
MacOS X: Xcode&lt;br /&gt;
Debian/Ubuntu: Pacote build-essential (sudo apt-get install build-essential).&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://macielbombonato.blogspot.com/feeds/8696654087912228668/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/instalacao-redis-macos-x-e-linux-em-30s.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/8696654087912228668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3308670910116152155/posts/default/8696654087912228668'/><link rel='alternate' type='text/html' href='http://macielbombonato.blogspot.com/2012/02/instalacao-redis-macos-x-e-linux-em-30s.html' title='Instalação Redis MacOS X e Linux em 30s'/><author><name>Maciel Escudero Bombonato</name><uri>http://www.blogger.com/profile/01665340581917381486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixgttQWO0XQ9bkaYyiiGVQ1IKoftLNkko7mHSU7GX6ZgS6lmrvDgy1geNRO7CbLBQHTahh0l0S9nR9iu8m-QWEpimYyoHoHSm5yWEbtVonh7swONJodc0vUBIQOzObZg/s113/*'/></author><thr:total>0</thr:total><georss:featurename>Santa Bárbara D Oeste - São Paulo, Brasil</georss:featurename><georss:point>-22.7546832 -47.41436</georss:point><georss:box>-22.871826199999997 -47.5722885 -22.6375402 -47.256431500000005</georss:box></entry></feed>