Como configurar o Tomcat 6 para projetos com JAX-B

Ao realizar um deployment no tomcat 6 de um projeto utlizando JAXB , podemos receber de volta um erro de linkagem informando que a lib JAXB 2.0 não foi carregada, uma mensagem desse tipo pode ser apresentada :

“Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader”

Para corrigir esse erro, temos que disponibilizar os Jars do JAXB em uma pasta conhecida como endorsed, onde o Tomcat espera bibliotecas adicionais para carga. O caminho dessa pasta é configurado no inicializador do Tomcat ( script ou cmd de serviço ) e geralmente seu caminho é apresentado nas configurações a seguir : ${catalina_home}/common/endorsed
${catalinha_home}/endorsed

Tenha em mente que esse caminho pode ser alterado no script de inicialização. Uma vez que as Jars estejam disponíveis, o Tomcat conseguirá iniciar a aplicação e esse erro não será mais reproduzido.

Como funciona a tecnologia Hyper-Threading da Intel

Vídeo da intel exemplificando como o multitask é implementado nos processadores Intel de terceira geração com tecnologia Hyper-Threading.

Downgrade do Maven 3 para Maven 2 no MacOS

Recentemente precisei setar um projeto com o Maven 2.2.1 no MacOs. Como a máquina foi recentemente atualizada para a última versão do sistema operacional, descobri que a versão instalada era a versão 3.0.3.

Como saber qual a versão instalada ?

Abra um terminal e digite o seguinte comando :

mvn -version

Caso deseje realizar o downgrade, realize os passos abaixo através do terminal:

1 – Vá para a pasta Share/Java :

cd /usr/share/java

2 – Setup da versão do Maven:

Certifique-se que o Maven esta instalado nessa pasta :

ls -l | grep maven

* É provável que outras versões estejam instaladas. Caso a versão desejada não esteja, realize o download em http://maven.apache.org/ . Uma vez que o download foi concluído, o arquivo zipado deve ser movido para a pasta share/java.

sudo cp ~/Downloads/<Nome do arquivo>.zip /usr/share/java

Feito isso, o arquivo deverá ser explodido na pasta :

sudo unzip <Nome do arquivo>.zip 

3 –  Vá para uma pasta acima ( Vamos fazer o apontamento do Maven )

cd ..

A Pasta atual é /usr/share.

4 – Ajustando o apontamento do Maven

Certifique-se que o apontamento esta nessa pasta :

ls -l | grep maven

 

Deve existir um link simbólico apontando para a versão do Maven, então temos que remover esse link.

sudo rm maven

5 – Crie o novo link apontando para a versão desejada:

sudo ln -s java/<Versão do Maven> maven

6 – Pronto! Para testar a instalação aplique no terminal :

mvn -version

Se tudo estiver certo, a versão apresentada dever ser diferente. No meu caso, a versão foi a 2.2.1:

MacBook-Pro:share fabio$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 16:16:01-0300)
Java version: 1.6.0_37
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: “mac os x” version: “10.8.2” arch: “x86_64” Family: “mac”
MacBook-Pro:share fabio$

 

Desenvolvendo aplicações de telefonia com VXML

Há uma variedade de grandes soluções de telefonia que implementam VXML para a construção de iterações com usuários, permitindo a criação de URAs ( unidade de resposta audível ). O desenvolvimento de soluções de telefonia que permitam a interação com outras aplicações attravés do uso de uma interface de voz, leitura de teclado e reconhecimento de voz é um grande desafio. Nesse post tento introduzir o uso do Vxml como tecnologia para o desenvolvimento para cobrir essa lacuna.

Inicialmente cada fabricante implementava seu processo de construção de aplicações, o que impossibilitava uma aplicação ser executada em ambientes compostos por vários fornecedores, necessitando que a aplicação fosse parcialmente ou totalmente rescrita.Nesse cenário, VXML surge do como um documento padrão para a construção de aplicações portáveis para Voice Browsers que implementem a especificação, permitindo a integração com o usuário através de voz ou DTMF.

A implementação de documentos é simples e o uso de parsers para o tratamento de documentos é facilitado pelo uso dos mesmos componentes usados para tratamento de XML.

20130116-081803.jpg

Hello World VXML

Basicamente a construção do mecanismo de interatividade consiste no uso de forms para reprodução de áudios e abertura de prompts de leitura de dados do usuário. Mecanismos de submit e link permitem a integração com aplicações externas.