Febre, hemoptise, dispnéia e suores noturnos.
A vida inteira que podia ter sido e que não foi.
Tosse, tosse, tosse.
Mandou chamar o médico:
— Diga trinta e três.
— Trinta e três . . . trinta e três . . . trinta e três . . .
— Respire.
...............................................................................................................
— O senhor tem uma escavação no pulmão esquerdo e o pulmão direito infiltrado.
— Então, doutor, não é possível tentar o pneumotórax?
— Não. A única coisa a fazer é tocar um tango argentino.
Manuel Bandeira
Satisfaction does not come with achievement, but with effort.
Full effort is full victory.
Mohandas Gandhi
terça-feira, 29 de janeiro de 2008
Java - Gerando RSS com ROME
ROME RSS and Atom Utilities é um framework java que serve para gerar arquivos RSS de forma fácil e rápida. Sua utilização basicamente consiste na criação de um objeto Feed e uma lista de Entries a qual será atribuida ao Feed.
A seguir há um exemplo de um Servlet que processa uma lista de Notícias gravada em um banco de dados e gera o RSS utilizando PrintWriter.
O retorno será algo semelhante a:
Para saber mais sobre o ROME, acesse http://wiki.java.net/bin/view/Javawsxml/Rome
A seguir há um exemplo de um Servlet que processa uma lista de Notícias gravada em um banco de dados e gera o RSS utilizando PrintWriter.
//imports...
public class FeedWriter extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
OutputStream os = response.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os , "UTF-8");
PrintWriter pw = new PrintWriter(osw);
create("rss_2.0", pw);
writer.close();
}
protected void create(String feedType, Writer writer) {
try {
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle("Noticias)");
feed.setLink("http://rome.dev.java.net");
feed.setDescription("BLA BLA BLA");
List entries = new ArrayList();
SyndEntry entry;
SyndContent description;
Dao dao = new Dao();
for (Noticia noticia : dao.findAllNoticias()) {
entry = new SyndEntryImpl();
entry.setTitle(noticia.getTitulo());
entry.setLink(noticia.getLink());
entry.setPublishedDate(noticia.getDataPost());
description = new SyndContentImpl();
description.setType("text/plain");
description.setValue(noticia.getDescricao());
entry.setDescription(description);
entries.add(entry);
}
feed.setEntries(entries);
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("ERROR: "+ex.getMessage());
}
}
}
O retorno será algo semelhante a:
Para saber mais sobre o ROME, acesse http://wiki.java.net/bin/view/Javawsxml/Rome
segunda-feira, 28 de janeiro de 2008
Saudades de Toronto
Saudades de andar nas ruas de Toronto às 2:00am e se sentir seguro...
Rafael José diz:
volta pra cá
Bruno Rossetto diz:
rs
Rafael José diz:
mas e agora? vai fazer oq?
Bruno Rossetto diz:
fiz o BO
Bruno Rossetto diz:
fazer nada
Bruno Rossetto diz:
fazer o q?
Bruno Rossetto diz:
nao tem o q fazer
Bruno Rossetto diz:
só resta tocar o tango argentino...
http://edgarsilva.com.br/2008/01/16/o-seu-salario-e-uma-bosta/
Rafael José diz:
volta pra cá
Bruno Rossetto diz:
rs
Rafael José diz:
mas e agora? vai fazer oq?
Bruno Rossetto diz:
fiz o BO
Bruno Rossetto diz:
fazer nada
Bruno Rossetto diz:
fazer o q?
Bruno Rossetto diz:
nao tem o q fazer
Bruno Rossetto diz:
só resta tocar o tango argentino...
http://edgarsilva.com.br/2008/01/16/o-seu-salario-e-uma-bosta/
quinta-feira, 24 de janeiro de 2008
JBoss Profiler para detectar Memory Leaks
Após alguns estudos e testes utilizando JBoss profiler encontrei um artigo muito legal de Clebert Suconic e Michael Juntao Yuan sobre Memory Leaks, porém ao fazer a configuração adicional para utilizar o inventoryReport tive o seguinte erro:
12:06:35,596 ERROR [[HtmlAdaptor]] Servlet.service() for servlet HtmlAdaptor threw exception
javax.management.RuntimeErrorException
at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:178)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:163)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
.
.
.
Caused by: java.lang.UnsatisfiedLinkError: notifyInventory
Para corrigi-lo, basta rodar os scripts de compilação para regerar os arquivos libjbossAgent.so e libjbossInspector.so e coloca-los em seu
http://developer.redhatmagazine.com/2006/09/18/use-jboss-profiler-to-detect-memory-leaks/
Outros links úteis:
http://www.jboss.org/wiki/Wiki.jsp?page=JBossProfiler
http://wiki.jboss.org/wiki/Wiki.jsp?page=HowToConfigureJBossProfiler
http://weblogs.java.net/blog/edgars/archive/2007/06/looking_as_deep.html
http://www.jboss.org/?module=bb&op=viewtopic&t=102793
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4009745#4009745
12:06:35,596 ERROR [[HtmlAdaptor]] Servlet.service() for servlet HtmlAdaptor threw exception
javax.management.RuntimeErrorException
at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:178)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:163)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
.
.
.
Caused by: java.lang.UnsatisfiedLinkError: notifyInventory
Para corrigi-lo, basta rodar os scripts de compilação para regerar os arquivos libjbossAgent.so e libjbossInspector.so e coloca-los em seu
$LD_LIBRARY_PATH.
Artigo sobre Memory Leaks:http://developer.redhatmagazine.com/2006/09/18/use-jboss-profiler-to-detect-memory-leaks/
Outros links úteis:
http://www.jboss.org/wiki/Wiki.jsp?page=JBossProfiler
http://wiki.jboss.org/wiki/Wiki.jsp?page=HowToConfigureJBossProfiler
http://weblogs.java.net/blog/edgars/archive/2007/06/looking_as_deep.html
http://www.jboss.org/?module=bb&op=viewtopic&t=102793
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4009745#4009745
segunda-feira, 14 de janeiro de 2008
Caracteres Chineses no Red Hat (ctrl + space)
Ctrl + space é uma das combinações mais importantes em IDEs Java (autoclomplete), porém a partir da versão 3 do Red Hat EL o ctrl + space ativa um esquema de caracteres não-ocidentais (Chinês Tradicional e Simplificado). Isto é disponibilizado pelo scim, e a forma mais fácil de desativar isso é desinstalando-o (a não ser que você precise de caracteres em Chinês).
Para desisntala-lo basta digitar em linha de comando: yum remove scim e desinstalar todas as suas dependências.
Para desisntala-lo basta digitar em linha de comando: yum remove scim e desinstalar todas as suas dependências.
terça-feira, 8 de janeiro de 2008
compilerTargetVM compilerSourceVM source level 5
Caso queira utilizar recursos referentes à versão 5.0 da vm no JBoss em JSPs basta alterar o arquivo /jboss-web.deployer/conf/web.xml adicionando 2 parâmetros:
- compilerTargetVM = 1.5
- compilerSourceVM = 1.5
para o servlet org.apache.jasper.servlet.JspServlet
- compilerTargetVM = 1.5
- compilerSourceVM = 1.5
para o servlet org.apache.jasper.servlet.JspServlet
compilerTargetVM Compiler target VM
default is System.properties
java.specification.version > 1.4
[1.5] else [1.4]
compilerSourceVM Compiler source VM
default is System.properties
java.specification.version > 1.4
[1.5] else [1.4]
Syntax error, parameterized types are only available if source level is 5.0
segunda-feira, 7 de janeiro de 2008
Lendo propriedades de arquivo no JMeter
Praticamente todo mundo já leu alguma coisa sobre JMeter, ou já viu alguma apresentação em um dos vários eventos Java no país, ou até mesmo já colocou a mão na massa para realizar algum teste de stress com esta ferramenta. De fato, é muito simples realizar um teste de stress básico com JMeter, até mesmo em sistemas web.
Porém, o JMeter possui muitas características para incrementar seus testes de stress e deixá-los muito poderosos, como testes distribuídos, variáveis e funções, beanshell, etc...
Neste post irei mostrar como ler propriedades de um arquivo texto utilizando o componente CSV Data Set Config (element -> config).
Declarando as propriedades
O config CSV Data Set Config é atualmente a forma mais simples de ler propriedades de um arquivo, para isso, basta criar um arquivo texto com valores separados por vírgula.
Exemplo:
a1, b1, c1
Adicione o CSV Data Set Config em sua Thread Group configurando as propriedades da seguinte forma:
Filename: path do arquivo texto, ex: "../teste.txt" (os paths relativos são resolvidos a partir com o path do test plan ativo, também pode-se utilizar path absoluto)
Variable names: "a,b,c" (este será o nome das propriedades utilizadas para acessar os valores)
Delimiter (use '\t' for tab): ","
Exibindo propriedades
A partir da versão 2.3.1 foi adicionado o componente Debug Sampler o qual lista diversas coisas, entre elas, os valores das variáveis do arquivo.
Adicione o Debug Sampler em seu Thread Group (sampler -> debug sampler), e adicioner também um View Results Tree. O Debug Sampler irá trabalhar em conjunto com o View Results Tree, exibindo separadamente os valores referentes a cada request.
Abaixo está o resultado de um teste simples com leitura de propriedades de um arquivo.
Links relacionados
http://jakarta.apache.org/jmeter/usermanual/component_reference.html#CSV_Data_Set_Config
http://jakarta.apache.org/jmeter/usermanual/functions.html
http://jakarta.apache.org/jmeter/usermanual/component_reference.html#Debug_Sampler
Porém, o JMeter possui muitas características para incrementar seus testes de stress e deixá-los muito poderosos, como testes distribuídos, variáveis e funções, beanshell, etc...
Neste post irei mostrar como ler propriedades de um arquivo texto utilizando o componente CSV Data Set Config (element -> config).
Declarando as propriedades
O config CSV Data Set Config é atualmente a forma mais simples de ler propriedades de um arquivo, para isso, basta criar um arquivo texto com valores separados por vírgula.
Exemplo:
a1, b1, c1
Adicione o CSV Data Set Config em sua Thread Group configurando as propriedades da seguinte forma:
Filename: path do arquivo texto, ex: "../teste.txt" (os paths relativos são resolvidos a partir com o path do test plan ativo, também pode-se utilizar path absoluto)
Variable names: "a,b,c" (este será o nome das propriedades utilizadas para acessar os valores)
Delimiter (use '\t' for tab): ","
Exibindo propriedades
A partir da versão 2.3.1 foi adicionado o componente Debug Sampler o qual lista diversas coisas, entre elas, os valores das variáveis do arquivo.
Adicione o Debug Sampler em seu Thread Group (sampler -> debug sampler), e adicioner também um View Results Tree. O Debug Sampler irá trabalhar em conjunto com o View Results Tree, exibindo separadamente os valores referentes a cada request.
Abaixo está o resultado de um teste simples com leitura de propriedades de um arquivo.
Links relacionados
http://jakarta.apache.org/jmeter/usermanual/component_reference.html#CSV_Data_Set_Config
http://jakarta.apache.org/jmeter/usermanual/functions.html
http://jakarta.apache.org/jmeter/usermanual/component_reference.html#Debug_Sampler
Assinar:
Postagens (Atom)