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

<channel>
	<title>Fabio Brandão - Blog &#187; java</title>
	<atom:link href="http://www.fnbrandao.com.br/blog/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fnbrandao.com.br/blog</link>
	<description></description>
	<lastBuildDate>Fri, 06 Jan 2012 15:22:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Freemarker + Sitemesh + Spring</title>
		<link>http://www.fnbrandao.com.br/blog/2009/07/freemarker-sitemesh-spring/</link>
		<comments>http://www.fnbrandao.com.br/blog/2009/07/freemarker-sitemesh-spring/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 22:00:52 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java EE]]></category>
		<category><![CDATA[freemarker]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sitemesh]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=34</guid>
		<description><![CDATA[Depois de muito tempo consegui fazer minha aplicação utilizando Freemarker (template engine) + Sitemesh (web page layout framework) + Spring (IOC, etc) funcionar.
Basicamente, basta configurar no web.xml o filtro do Sitemesh (com.opensymphony.sitemesh.webapp.SiteMeshFilter), a servlet do Freemarker que vem com o Sitemesh (com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet) e a servlet do Spring MVC (org.springframework.web.servlet.DispatcherServlet).
O filtro do Sitemesh é aplicado a [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de muito tempo consegui fazer minha aplicação utilizando Freemarker (template engine) + Sitemesh (web page layout framework) + Spring (IOC, etc) funcionar.</p>
<p>Basicamente, basta configurar no web.xml o filtro do Sitemesh (com.opensymphony.sitemesh.webapp.SiteMeshFilter), a servlet do Freemarker que vem com o Sitemesh (com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet) e a servlet do Spring MVC (org.springframework.web.servlet.DispatcherServlet).</p>
<p>O filtro do Sitemesh é aplicado a todas as requisições, a servlet do freemarker às urls *.ftl e a servlet do Spring às urls *.html.</p>
<p>O problema que eu tive foi que os templates do Freemarker e do Sitemesh não eram encontrados. No web.xml, um dos parâmetros iniciais da servlet do Freemarker é o diretório dos templates (TemplatePath). Configurei este parâmetro para &#8220;/WEB-INF/templates/&#8221;. E no arquivo decorators.xml configurei que os templates do Sitemesh ficavam no diretório &#8220;/decorators&#8221;. O que acontecia é que o diretório dos templates do Sitemesh deveriam ficar dentro do diretório dos templates do Freemarker. Logo a estrutura de diretórios é dessa maneira: /WEB-INF/templates/decorators.</p>
<p>Segue abaixo o link com a aplicação de exemplo desta integração:<br />
<a href="http://www.fnbrandao.com.br/blog/files/freemarker.tar.gz">http://www.fnbrandao.com.br/blog/files/freemarker.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2009/07/freemarker-sitemesh-spring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDB Extractor</title>
		<link>http://www.fnbrandao.com.br/blog/2008/12/pdb-extractor/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/12/pdb-extractor/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 17:48:46 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[pdb extractor]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=26</guid>
		<description><![CDATA[Ainda em relação ao post anterior, tive que extrair o conteúdo de um arquivo PDB (um formato de arquivo usado nos Palm&#8217;s).
Encontrei a solução parcial neste post:http://www.neowin.net/forum/index.php?s=d21af43a292e783de98d0644c0824b70&#38;showtopic=689476&#38;pid=590047756&#38;st=0&#38;#entry590047756
A solução descrita não funcionou, mas após algumas alterações na solução, serviu para o que eu precisava:
/***
* T3_allfiles
* based upon T3_APR.java from Shadowmite's forum
*
* This file will extract a [...]]]></description>
			<content:encoded><![CDATA[<p>Ainda em relação ao post anterior, tive que extrair o conteúdo de um arquivo PDB (um formato de arquivo usado nos Palm&#8217;s).</p>
<p>Encontrei a solução parcial neste post:<a href="http://www.neowin.net/forum/index.php?s=d21af43a292e783de98d0644c0824b70&amp;showtopic=689476&amp;pid=590047756&amp;st=0&amp;#entry590047756" target="_blank">http://www.neowin.net/forum/index.php?s=d21af43a292e783de98d0644c0824b70&amp;showtopic=689476&amp;pid=590047756&amp;st=0&amp;#entry590047756</a></p>
<p>A solução descrita não funcionou, mas após algumas alterações na solução, serviu para o que eu precisava:</p>
<p><code>/***<br />
* T3_allfiles<br />
* based upon T3_APR.java from Shadowmite's forum<br />
*<br />
* This file will extract a binary file from it's<br />
* Palm PDB prison.  Just drop this in the directory<br />
* that contains the *.pdb files, and run it.  It'll<br />
* get them all.  Well, mostly.  See next.<br />
*<br />
* This file is NOT made to extract the rom image.<br />
* Use Grack's RomTool for that.<br />
*/</code></p>
<p>import java.io.*;</p>
<p>public class T3_allfiles {</p>
<p>public static void main(String[] args) throws Exception {<br />
File directory = new File(&#8220;/home/fabio/Desktop/pdb/&#8221;);<br />
String[] files = directory.list(new PDBfilter());</p>
<p>for (String individualFile : files) {<br />
pdb2(&#8220;/home/fabio/Desktop/pdb/&#8221; + individualFile);<br />
}<br />
}</p>
<p>static void pdb2(String file) throws Exception {<br />
System.out.println(file);<br />
RandomAccessFile in = new RandomAccessFile(file, &#8220;r&#8221;);<br />
in.skipBytes(76);<br />
int numRec = in.readShort();<br />
int[] toc = new int[numRec];<br />
for (int i = 0; i &lt; numRec; ++i) {<br />
toc[i] = in.readInt();<br />
in.readInt();<br />
}<br />
for (int i = 0; i &lt; numRec; ++i) {<br />
in.seek(toc[i]);<br />
short fileNameSize = in.readShort();<br />
byte[] fn = new byte[fileNameSize];<br />
in.read(fn);</p>
<p>String fileName = new String(fn);<br />
System.out.println(&#8220;\t&#8221; + fileName);</p>
<p>String[] directories = fileName.split(&#8220;\\/&#8221;);<br />
String directory = &#8220;.&#8221;;<br />
for (int j = 0; j &lt; directories.length &#8211; 1; j++) {<br />
directory += File.separator + directories[j];<br />
}<br />
new File(directory).mkdirs();</p>
<p>BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileName));</p>
<p>if (i &lt; toc.length &#8211; 2) {<br />
int bytesToRead = toc[i + 1] &#8211; toc[i] &#8211; fileNameSize &#8211; 2;<br />
while (bytesToRead &gt; 0) {<br />
out.write(in.read());<br />
bytesToRead&#8211;;<br />
}<br />
} else {<br />
int b;<br />
while ((b = in.read()) &gt; -1) {<br />
out.write(b);<br />
}<br />
}</p>
<p>out.close();<br />
}<br />
}<br />
}</p>
<p>class PDBfilter implements FilenameFilter {<br />
public boolean accept(File dir, String name) {<br />
if (new File(dir, name).isDirectory()) {<br />
return false;<br />
}</p>
<p>name = name.toLowerCase();<br />
return name.endsWith(&#8220;.pdb&#8221;);<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/12/pdb-extractor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Descompilando Java</title>
		<link>http://www.fnbrandao.com.br/blog/2008/12/descompilando-java/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/12/descompilando-java/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 17:44:00 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[descompilador]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jd]]></category>
		<category><![CDATA[jd-gui]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=25</guid>
		<description><![CDATA[Há algum tempo atrás, peguei um serviço pra fazer no qual o cliente não tinha o código fonte do sistema.
Após alguns dias procurando um descompilador java, achei este:
JD-Gui
Este descompilador é muito bom, devido à diversas features, como por exemplo, poder descompilar um jar inteiro, fazer links entre os arquivos descompilados, etc.
]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo atrás, peguei um serviço pra fazer no qual o cliente não tinha o código fonte do sistema.</p>
<p>Após alguns dias procurando um descompilador java, achei este:</p>
<p><a href="http://java.decompiler.free.fr/" target="_blank">JD-Gui</a></p>
<p>Este descompilador é muito bom, devido à diversas features, como por exemplo, poder descompilar um jar inteiro, fazer links entre os arquivos descompilados, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/12/descompilando-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium &#8211; Permission denied to get property Location.href</title>
		<link>http://www.fnbrandao.com.br/blog/2008/07/selenium-permission-denied-to-get-property-locationhref/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/07/selenium-permission-denied-to-get-property-locationhref/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 13:35:09 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Location.href]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=22</guid>
		<description><![CDATA[Hoje tive um problema no Selenium, no qual o mesmo não conseguia verificar a url do navegador, jogando uma exceção com a seguinte mensagem:
Permission denied to get property Location.href
Procurando no google, encontrei o seguinte blog:
http://www.woloszyn.org/2008/04/22/selenium-and-the-permission-denied-to-get-property-locationhref-problem/
Este blog mencionava que o problema era causado por um redirect enviado pelo response do servidor. A solução desse blog foi [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje tive um problema no Selenium, no qual o mesmo não conseguia verificar a url do navegador, jogando uma exceção com a seguinte mensagem:</p>
<p><code>Permission denied to get property Location.href</code></p>
<p>Procurando no google, encontrei o seguinte blog:</p>
<p><a href="http://www.woloszyn.org/2008/04/22/selenium-and-the-permission-denied-to-get-property-locationhref-problem/" target="_blank">http://www.woloszyn.org/2008/04/22/selenium-and-the-permission-denied-to-get-property-locationhref-problem/</a></p>
<p>Este blog mencionava que o problema era causado por um redirect enviado pelo response do servidor. A solução desse blog foi não utilizar o redirect.</p>
<p>Em outro site:</p>
<p><a href="http://www.nabble.com/Permission-denied-to-get-property-Location.href-td8081383.html" target="_blank">http://www.nabble.com/Permission-denied-to-get-property-Location.href-td8081383.html</a></p>
<p>Falava que só bastava utilizar o *chrome ou *iehta (no meu código estava sendo utilizado o *firefox). Após esta alteração, tudo voltou a funcionar normalmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/07/selenium-permission-denied-to-get-property-locationhref/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spring gerenciando as transações</title>
		<link>http://www.fnbrandao.com.br/blog/2008/06/spring-gerenciando-as-transacoes/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/06/spring-gerenciando-as-transacoes/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 12:47:02 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=13</guid>
		<description><![CDATA[Após duas longas semanas resolvi o problema que estava tendo com o Spring gerenciando as transações de banco de dados. O que acontecia é que nenhuma transação era aberta na classe marcada com a anotação “@Transactional”. Segue abaixo um exemplo de como utilizar o gerenciamento de transações do Spring:

package br.com.test;

public interface IService {

   [...]]]></description>
			<content:encoded><![CDATA[<p>Após duas longas semanas resolvi o problema que estava tendo com o Spring gerenciando as transações de banco de dados. O que acontecia é que nenhuma transação era aberta na classe marcada com a anotação <i>“@Transactional”</i>. Segue abaixo um exemplo de como utilizar o gerenciamento de transações do Spring:</p>
<p><code>
<pre>package br.com.test;

public interface IService {

    int myServiceMethod(String myServiceParameter);

}</pre>
<p></code></p>
<p>Segue abaixo a implementação, repare no uso da anotação <i>“@Transactional”</i> na classe (isto indica que a classe toda deve estar associada à um contexto transacional. É possível também marcar métodos:</p>
<p><code>
<pre>package br.com.test;

import org.springframework.transaction.annotation.Transactional;

@Transactional
public class ServiceBean implements IService {

    public int myServiceMethod(String myServiceParameter) {
        return Integer.parseInt(myServiceParameter);
    }

}</pre>
<p></code></p>
<p>Agora só falta configurar o <i>“applicationContext.xml”</i> do Spring:</p>
<p><code>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&gt;

  &lt;bean id="myService" class="br.com.test.ServiceBean"/&gt;

  &lt;tx:annotation-driven transaction-manager="txManager"/&gt;

  &lt;bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt;
    &lt;property name="dataSource" ref="dataSource"/&gt;
  &lt;/bean&gt;

  &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&gt;
    &lt;property name="driverClassName" value="${jdbc.driverClassName}" /&gt;
    &lt;property name="url" value="${jdbc.url}" /&gt;
    &lt;property name="username" value="${jdbc.username}" /&gt;
    &lt;property name="password" value="${jdbc.password}" /&gt;
  &lt;/bean&gt;
&lt;/beans&gt;</pre>
<p></code></p>
<p>Repare no uso da tag <i>“&lt;tx:annotation-driven transaction-manager=&#8221;txManager&#8221;/&gt;”</i>. Esta tag ativa a configuração de transações baseada em anotações.</p>
<p>Até aí é muito simples utilizar o gerenciamento de transações do Spring. O problema que tive foi o seguinte: meu serviço possuía uma interface, e esta interface estava sendo implementada por uma classe abstrata. Essa classe abstrata definia o método que eu queria que fosse transacional. Depois eu criei uma terceira classe que extendia essa classe abstrata. Coloquei a anotação <i>“@Transactional”</i> na classe concreta, e o Spring não gerenciava as transações no método definido na classe abstrata. Para resolver o problema só foi necessário colocar a anotação da classe abstrata.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/06/spring-gerenciando-as-transacoes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PostBack no JSF</title>
		<link>http://www.fnbrandao.com.br/blog/2008/06/postback-no-jsf/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/06/postback-no-jsf/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 12:06:32 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[postback]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=7</guid>
		<description><![CDATA[Um grande problema com o JSF é que na especificação 1.1 não existe algum método para saber se a página está sendo executada no postback (quando você reenvia os dados para ela mesma). Mas existe o seguinte workaround:

package web.jsf.vh;

import java.io.IOException;
import java.util.Locale;
import java.util.Map;

import javax.faces.FacesException;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;

public class PostBackViewHandler extends ViewHandler {

  protected ViewHandler baseViewHandler;

 [...]]]></description>
			<content:encoded><![CDATA[<p>Um grande problema com o JSF é que na especificação 1.1 não existe algum método para saber se a página está sendo executada no postback (quando você reenvia os dados para ela mesma). Mas existe o seguinte workaround:</p>
<p><code>
<pre>package web.jsf.vh;

import java.io.IOException;
import java.util.Locale;
import java.util.Map;

import javax.faces.FacesException;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;

public class PostBackViewHandler extends ViewHandler {

  protected ViewHandler baseViewHandler;

  public CustomViewHandler(ViewHandler viewHandler) {
    super();
    this.baseViewHandler = viewHandler;
  }

  public Locale calculateLocale(FacesContext facesContext) {
    return baseViewHandler.calculateLocale(facesContext);
  }

  public String calculateRenderKitId(FacesContext facesContext) {
    return baseViewHandler.calculateRenderKitId(facesContext);
  }

  public UIViewRoot createView(FacesContext facesContext, String arg1) {
    setPostback(facesContext, false);
    return baseViewHandler.createView(facesContext, arg1);
  }

  public String getActionURL(FacesContext facesContext, String arg1) {
    return baseViewHandler.getActionURL(facesContext, arg1);
  }

  public String getResourceURL(FacesContext facesContext, String arg1) {
    return baseViewHandler.getResourceURL(facesContext, arg1);
  }

  public void renderView(FacesContext facesContext, UIViewRoot arg1) throws IOException, FacesException {
    baseViewHandler.renderView(facesContext, arg1);

  }

  public UIViewRoot restoreView(FacesContext facesContext, String arg1) {
    setPostback(facesContext, true);
    return baseViewHandler.restoreView(facesContext, arg1);
  }

  public void writeState(FacesContext facesContext) throws IOException {
    baseViewHandler.writeState(facesContext);
  }

  public Map getRequestScope(FacesContext facesContext) {
    return (Map)facesContext.getApplication().createValueBinding(“#{requestScope}”).getValue(facesContext);
  }

  public void setPostback(FacesContext facesContext, boolean value) {
    getRequestScope(facesContext).put(“ispostback”, new Boolean(value));
  }

}</pre>
<p></code></p>
<p>O código acima é um View Handler do JSF, agora basta registrá-lo no <i>&#8220;facesconfig.xml&#8221;</i>:</p>
<p><code>
<pre>&lt;application&gt;
   &lt;view-handler&gt;web.jsf.vh.PostBackViewHandler&lt;/view-handler&gt;
&lt;/application&gt;</pre>
<p></code></p>
<p>E para saber em sua página se é um postback:</p>
<p><code>
<pre>public boolean isPostback() {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Map requestScope = (Map)facesContext.getApplication().createValueBinding(“#{requestScope}”).getValue(facesContext);
    boolean ispostback = ((Boolean)requestScope.get(“ispostback”)).booleanValue();
    return ispostback;
}</pre>
<p></code></p>
<p>Obs.: Esse workaround só funciona se o estado da view não é salva no servidor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/06/postback-no-jsf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Debug no Tomcat 5.5</title>
		<link>http://www.fnbrandao.com.br/blog/2008/05/debug-no-tomcat-55/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/05/debug-no-tomcat-55/#comments</comments>
		<pubDate>Thu, 15 May 2008 00:25:45 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=9</guid>
		<description><![CDATA[Para rodar um debug remoto no tomcat 5.5 no Ubuntu, basta editar o arquivo &#8220;/etc/init.d/tomcat5.5&#8243; e colocar a seguinte linha:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

antes das linhas:

# Define other required variables
CATALINA_PID="/var/run/$NAME.pid"
BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"

]]></description>
			<content:encoded><![CDATA[<p>Para rodar um debug remoto no tomcat 5.5 no Ubuntu, basta editar o arquivo <em>&#8220;/etc/init.d/tomcat5.5&#8243;</em> e colocar a seguinte linha:</p>
<p><code><br />
-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n<br />
</code></p>
<p>antes das linhas:</p>
<p><code><br />
# Define other required variables<br />
CATALINA_PID="/var/run/$NAME.pid"<br />
BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap<br />
JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar"<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/05/debug-no-tomcat-55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse e PermGen</title>
		<link>http://www.fnbrandao.com.br/blog/2008/05/eclipse-e-permgen/</link>
		<comments>http://www.fnbrandao.com.br/blog/2008/05/eclipse-e-permgen/#comments</comments>
		<pubDate>Sat, 10 May 2008 22:31:12 +0000</pubDate>
		<dc:creator>fabio</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[OutOfMemoryError]]></category>
		<category><![CDATA[permgen]]></category>

		<guid isPermaLink="false">http://www.fnbrandao.com.br/blog/?p=4</guid>
		<description><![CDATA[Se você estiver tendo problemas de memória com o Eclipse, como por exemplo:
java.lang.OutOfMemoryError: PermGen space
Basta alterar o arquivo &#8220;eclipse.ini&#8221; e adicionar as seguintes linhas no final dele:
-XX:PermSize=64M
-XX:MaxPermSize=128M
]]></description>
			<content:encoded><![CDATA[<p>Se você estiver tendo problemas de memória com o Eclipse, como por exemplo:</p>
<p><code>java.lang.OutOfMemoryError: PermGen space</code></p>
<p>Basta alterar o arquivo <em>&#8220;eclipse.ini&#8221;</em> e adicionar as seguintes linhas no final dele:</p>
<p><code>-XX:PermSize=64M<br />
-XX:MaxPermSize=128M</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fnbrandao.com.br/blog/2008/05/eclipse-e-permgen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

