Archive for the 'Tecnologia' Category

Banco de dados HSQLDB com JBoss AS 5.1GA e Hibernate

Iniciei o estudo do framework Jboss Seam recentemente e tive alguns problemas no uso do HSQLDB na aplicação. Na verdade no uso do Datasource dentro do Jboss AS.

Dessa forma caso alguém tenha algum problema colocarei abaixo como está a infraestrutura e como configurei o arquivo de datasource no Jboss:

– Jboss AS 5.1.0 GA
– Jboss Seam 2.0.2 CR1
– JSF 1.2

Na aplicação o arquivo hibernate.cfg.xml está assim:

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="show_sql">false</property>
        <property name="connection.datasource">java:/SeamTestDS</property>
        <property name="hbm2ddl.auto">create-drop</property>
        <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        <property name="transaction.flush_before_completion">true</property>
        <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    </session-factory>
</hibernate-configuration>

No diretório do Jboss, criei um arquivo xml com o nome da aplicação (SeamTest) que será o datasource usado pela app:

Arquivo “seamtest-ds.xml”:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
   <local-tx-datasource>
      <jndi-name>SeamTestDS</jndi-name>
	  <connection-url>jdbc:hsqldb:.</connection-url>
      <driver-class>org.hsqldb.jdbcDriver</driver-class>
      <user-name>sa</user-name>
      <password></password>
      <min-pool-size>5</min-pool-size>
      <max-pool-size>20</max-pool-size>
      <idle-timeout-minutes>0</idle-timeout-minutes>
      <track-statements/>
      <prepared-statement-cache-size>32</prepared-statement-cache-size>
      <metadata>
         <type-mapping>Hypersonic SQL</type-mapping>
      </metadata>
	  <depends>jboss:service=Hypersonic,database=SeamTestDB</depends>
   </local-tx-datasource>
   <mbean code="org.jboss.jdbc.HypersonicDatabase" 
     name="jboss:service=Hypersonic,database=SeamTestDB">
     <attribute name="Database">SeamTestDB</attribute>
     <attribute name="InProcessMode">true</attribute>
   </mbean>
 </datasources>

Dessa forma a app consegue “enxergar” o datasource e funcionar sem problemas.

Em um post próximo devo publicar como fiz a aplicação.

É isso!

com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Application was not properly initialized at startup, could not find Factory: javax.faces.context.ExceptionHandlerFactory

O título do post é grande mas preferi deixar ele assim mesmo por ser autoexplicativo.

Ao tentar rodar uma aplicação no JBoss 5.1 usando JSF 2.0 obtive o erro do título:

com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Application was not properly initialized at startup, could not find Factory: javax.faces.context.ExceptionHandlerFactory

Esse erro aconteceu mesmo com as libs “jsf-api-2.0.4-b09.jar” e “jsf-impl-2.0.4-b09.jar” na pasta WEB-INF/lib. A solução eu encontrei nesse link:

https://community.jboss.org/wiki/UpgradeJBossASToJSF2

Basicamente só é preciso entrar na pasta do servidor e copiar o arquivo jboss-faces.jar para a pasta lib do projeto.

No meu caso a pasta do servidor é: C:\java\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\jsf-libs

É isso.

iText: Gerando PDF’s em Java ou C#

Recentemente em alguns estudos me deparei com a biblioteca iText, uma API para geração de PDF’s que pode ser usada em JAva ou C#.

Essa API é gratuita e Open source, podendo ser baixada no seguinte endereço: itextpdf.com, eu baixei a versão 5.4.3 (itextpdf-5.4.3.jar).

Crie um projeto Java (Java Project) no Eclipse (estou usando a versão Juno). Clique com o botão direito em cima do projeto e vá em Build Path -> Configure Build Path. Vá na aba Libraries e clique no botão “ADd External JARs”. Selecione o JAR do iText e clique em OK.

Em Source crie uma classe qualquer (eu coloquei o nome de ImpressaoPDF.java). Abaixo colocarei o código fonte e em seguida explicações sobre algumas linhas:


import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

public class ImpressaoPdf {
public static void main(String[] args) throws Exception {
Document doc = null;
FileOutputStream os = null;
try {
doc = new Document(PageSize.A4);
os = new FileOutputStream("arquivo.pdf");
PdfWriter.getInstance(doc, os);
doc.open();
Font f = new Font(FontFamily.COURIER, 20, Font.BOLD);
Paragraph p = new Paragraph("Meu primeiro arquivo PDF!", f);
p.setAlignment(Element.ALIGN_CENTER);
doc.add(p);
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (doc != null) {
doc.close();
}
if (os != null) {
os.close();
}
}
}
}

Document representa o documento PDF a ser gerado, por isso é criado logo no início do código.
É preciso “abrir” o documento para poder escrever nele, isso é feito no trecho “doc.open();”, após isso é possível adicionar texto ao documento, como a configuração de fonte, criação de parágrafo e alinhamento:


Font f = new Font(FontFamily.COURIER, 20, Font.BOLD);
Paragraph p = new Paragraph("Meu primeiro arquivo PDF!", f);
p.setAlignment(Element.ALIGN_CENTER);
doc.add(p);

E por fim é preciso fechar o Document e o OutPutStream.
Após isso é só rodar o projeto como Java Application mesmo, o arquivo será gerado na pasta raiz do projeto dentro do seu workspace.

Enfim, existem inúmeros posts na internet sobre a biblioteca e eu quis contribuir com mais um, além da própria documentação presente no site.

É isso! []s

Mnemônicos – ITILv3

Bom, após finalizado o primeiro ciclo de estudos sobre ITIL desenvolvi alguns “mnemônicos” para gravar os processos. Lembrando que algumas questões de concurso são facilmente resolvidas somente sabendo o nome do processo e em qual estágio ele está inserido. Então vamos lá!

Estágios ou livros do ciclo de vida:

EDTOM (Estratégia, Desenho, Transição, Operação e Melhoria Contínua)

Obs.: Estratégia está bem no centro do ciclo de vida, é ele quem define estratégias da organização, está em um nível mais alto. O Desenho refina os requisitos de negócio em relação aos serviços de TI. A Transição é tático/operacional colocando os serviços em produção. A Operação é onde realmente nota-se a entrega de valor, que no ITIL se constitui em utilidade + garantia, pois é na operação, no dia a dia da empresa que percebe-se a qualidade dos serviços. Já a Melhoria Contínua atua em todos os estágios buscando sempre a máxima qualidade nos serviços de TI da organização.

– Estratégia do Serviço (Service Strategy):

Est Port Dem Fin (Geração da estratégia, Gerenciamento de Portfólio, Gerenciamento de Demandas e Gerenciamento Financeiro).

– Desenho do Serviço (Service Design):

Cata Nível SI For CDC (Gerenciamento do Catálogo de Serviços, Gerenciamento de Nível de Serviço, Gerenciamento de Segurança da Informação, Gerenciamento de Fornecedores, Gerenciamento de Capacidade, Gerenciamento de Disponibilidade e Gerenciamento de Continuidade).

– Transição do Serviço (Service Transition):

Obs.: Não tem mnemônico hehe, eu decorei os processos

Gerenciamento de Mudanças, Gerenciamento de Configuração, Gerenciamento de Liberação, Validação, Avaliação e Testes, Gestão do Conhecimento, Planejamento e Suporte de Transição)

– Operação do Serviço (Service Operation):

In Eve CumPro Acesso – A INEVE CUMPROU (e não “comprou”) o ACESSO dela. (Gerenciamento de Incidentes, Gerenciamento de Eventos, Cumprimento de Requisições, Gerenciamento de Problemas, Gerenciamento de Acesso).

No Service Operation temos as funções do ITIL (JAMAIS confundir com processos):
SEDE GATO (Service Desk, Gerenciamento de Aplicativos, Gerenciamento Técnico e Gerenciamento de Operações).

– Melhoria Conítua do Serviço (Continual Service Improvement):

7 Mensura R (Melhoria em 7 passos, Mensuração de Serviços e Relatório de Serviços)

É isso! Esses mnemônicos criei para mim, mas se servir para alguém ótimo, de qualquer forma o ideal é sempre tentar algo que você consiga decorar e gravar, infelizmente a decoreba é presente em vários concursos e não tem como fugir!

Edição de arquivos .ctp no Eclipse

Para quem usa o CakePHP como framework de desenvolvimento PHP e o Eclipse como IDE fica extremamente chato ter que alterar os arquivos .ctp que são reconhecidos como texto pelo Eclipse. Mas é possível alterar isso para ele interpretar os arquivos .ctp como arquivos PHP. Os passos são:

– Abra o Eclipse
– Clique em Window e depois em Preferences
– Clique em General na lista que é mostrada
– Abaixo de General clique em Content-Types
– No painel direito clique em Text para expandir
– Selecione PHP Content-Types
– Abaixo serão mostradas algumas extensões, como *.php,*.php3,*.php4, agora clique em Add e digite *.ctp no campo de entrada.
– Clique em Ok e depois em Ok novamente.

É necessário fechar os arquivos .ctp que estejam abertos e depois… SUCESSO!