Paths do produtos baseados no WLS

Alguns produtos da Oracle utilizam as informações encontradas no arquivo: $MW_HOME/wlserver_10.3/.product.properties para criação de domínios, configuração e afins.

O conteúdo do arquivo é similar a esse:

JAVA_HOME=/u01/jvm
javax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
USER_LANGUAGE=en
NODEMGR_PORT=5556
WLS_INSTALL_DIR=/u01/Oracle/Middleware/wlserver_10.3
COHERENCE_HOME=/u01/Oracle/Middleware/coherence_3.6
LOCALE=ccjk
WLS_JAVA_HOME=/u01/jvm
javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
WL_HOME=/u01/Oracle/Middleware/wlserver_10.3
java.vm.version=R28.1.4-7-144370-1.6.0_26-20110617-2130-linux-x86_64
MW_HOME=/u01/Oracle/Middleware
WLS_JAVA_VENDOR=Oracle
weblogic.server.modules.featurejar=/u01/Oracle/Middleware/modules/features/weblogic.server.modules_10.3.5.0.jar
javax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
PLATFORMHOME=/u01/Oracle/Middleware/wlserver_10.3
WLS_PRODUCT_VERSION=10.3.5.0
java.vm.vendor=Oracle Corporation
BEAHOME=/u01/Oracle/Middleware
DOCSWEBROOT=http\://download.oracle.com/docs/cd/E17904_01/web.1111
CONFIGWIZ_HOME=/u01/Oracle/Middleware/wlserver_10.3
JAVAHOME=/u01/jvm

Para alterar o caminho do Java por exemplo, é só mudar as variáveis JAVA_HOME, JAVAHOME e WLS_JAVA_HOME.

Outro local para alteração das variáveis de ambiente é o: $MW_HOME/wlserver_10.3/common/bin/commEnv.sh

Alterando o Java Home no Red Hat e derivados

Para alterar o JAVA_HOME no Red Hat e derivados (vale para outras versões de Linux também, mas pra versões baseadas em Debian, como o Ubuntu, existem outras maneiras) edite o arquivo .bash_profile na home do usuário. Por exemplo:

vim ~/.bash_profile

Se você deseja alterar para todos os usuários, adicione um arquivo /etc/profile.d/jvm.sh

E inclua o seguinte conteúdo no final do arquivo (para qualquer um dos casos):

export JAVA_HOME=/u01/jvm
export PATH=$JAVA_HOME/bin:$PATH

Digite source ~/.bash_profile ou source /etc/profile (no caso de todos os usuários). Verifique se deu certo digitando o seguinte comando:

echo $JAVA_HOME
which java

A saída desses comandos deve apontar para o local onde o java está instalado.

Rodando aplicação Ginga no VT7200D

Para rodar sua aplicação Ginga, tanto NCL/LUA quanto Java no VT7200D (para saber sobre o VT7200D, consulte aqui) é necessário realizar alguns truques.

O primeiro passo é inserir um pendrive no seu computador. Digite: dmesg no terminal para saber em qual é o device. No meu caso (pendrive de 2GB) apareceu o seguinte nas últimas linhas:

[39858.172559] sd 10:0:0:0: Attached scsi generic sg3 type 0
[39858.175660] sd 10:0:0:0: [sdc] 3911616 512-byte logical blocks: (2.00 GB/1.86 GiB)
[39858.177408] sd 10:0:0:0: [sdc] Write Protect is off
[39858.177412] sd 10:0:0:0: [sdc] Mode Sense: 65 44 09 30
[39858.178402] sd 10:0:0:0: [sdc] No Caching mode page present
[39858.178406] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[39858.182402] sd 10:0:0:0: [sdc] No Caching mode page present
[39858.182405] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[39858.183040]  sdc: sdc1

Dessa forma eu sei que o meu device é /dev/sdc. Caso o seu pendrive tenha alguma partição (no meu caso tem: sdc1) o Ubuntu irá montá-la automaticamente. Nos próximos comando substitua o sdc para o valor correto em sua máquina. Para “desmontar” (no bom sentido), digite:

««« Clique aqui para ler o restante do conteúdo: Rodando aplicação Ginga no VT7200D »»»

Centésimo post, J1, pizza com café e novidades

Esse é o centésimo post do blog… Até que enfim estou conseguindo tocar o blog! Já comecei o blog pelo menos 4 vezes e, finalmente, está dando bem certo. Descobri que o segredo para manter um blog não é querer escrever toda a hora ou escrever por obrigação, mas é escrever um pouquinho por vez quando dá e de algo que você goste ou esteja utilizando.

Junto com a novidade do centésimo post, nesse mês, vieram várias outras. Realizei um apresentação de TV Digital no Java One 2011, junto com o Carlos Fernando Gonçalvez e foi muito legal. Fui convidado para o Community Keynote do evento onde pude demonstrar a força da comunidade Java como membro do JavaNoroeste e a integração da TV Digital com o JHome para controle de equipamentos e automação residencial pela televisão. As fotos do evento e vídeos do Community Keynote, podem ser encontradas nesses links:

Outra coisa bacana é o surgimento de um novo podcast do qual faço parte: o Pizza Com Café. A ideia surgiu da necessidade de reuniões mensais para troca de informações, mas por falta de tempo resolvemos realizar uma pizzada e gravar um podcast e dessa forma surgiu o Pizza com Café. Já temos uma gravação feita e em breve o podcast entra no ar!

Pizza com Café

Pizza com Café

Além dessas notícias, consegui tirar a certificação Oracle Certified Master, Java EE 5 Enterprise Architect. É uma certificação muito difícil e me senti obrigado à prestar após o anúncio da Oracle que para tirar essa certificação iria ser necessário realizar cursos oficiais Oracle como pré-requisito. Como eu já tinha a primeira fase (prestei beta), resolvi prestar as outras duas etapas restantes. Consegui passar logo de primeira, o que me deixou bastante feliz, já que pra mim essa é a prova mais difícil de tecnologia Java, pois envolve teoria, prática, muito conhecimento e experiência.

Obrigado à todos que contribuíram para todas essas realizações

Agora é só aguardar pelas novidades de 2012!

Review do Receptor de TV Digital VT7200D

Pra demonstrar aplicativos rodando na TV Digital no Java One resolvi comprar um receptor de desenvolvedor. O aparelho possui a implementação Ginga completa da TQTVD. Roda aplicativos NCL/Lua e Java, além de possuir o StickerCenter, que é um market para aplicativos de TV Digital. Você pode ter mais informações nesse link: http://www.stickercenter.com.br. Ainda não tive tempo de testar o envio de aplicativos para o StickerCenter. Em breve, posto o resultado.

VT7200D para Desenvolvedor

VT7200D para Desenvolvedor

Realizei a compra pela loja virtual da Visiontec, consegui desconto de R$ 300,00 por me cadastrar no https://www.astrodevnet.com.br. Realizei o pedido no dia 29/11/2011 utilizando E-Sedex, no dia 30/11/2011 foi postado em Jacareí/SP e no dia 01/12/2011 recebi corretamente a encomenda. O aparelho funciona :D , mas infelizmente não vem nenhum manual para o desenvolvedor. Na verdade ele é o VT7200E (inclusive vem escrito nele), mas vem com o software para desenvolvedor.

««« Clique aqui para ler o restante do conteúdo: Review do Receptor de TV Digital VT7200D »»»

Habilitando Cookies Seguros no WebLogic

Em requisições HTTPS que utilizam cookies é importante habilitar a flag SECURE=”TRUE” nos cookies. Para realizar isso no WebLogic, é necessário adicionar as seguinte linha no weblogic-application.xml

<wls:session-descriptor>
<wls:cookie-secure>true</wls:cookie-secure>
</wls:session-descriptor>

E garantir que no console do weblogic esteja marcado o seguinte: Domain -> Configuration -> Web Application tab, enable “Auth Cookie Enabled”

Para garantir, abrir o config.xml do weblogic e adicionar/alterar a tag:

<auth-cookie-enabled>true</auth-cookie-enabled>

Mais informações: http://www.owasp.org/index.php/OWASP_AppSec_FAQ#What_are_these_secure_cookies.3F

Bibliotecas Nativas do Tomcat

As bibliotecas nativas do Tomcat são interfaces JNI para aumentar o desempenho das aplicações que rodam no servidor Tomcat através de chamadas nativas. Quando você não tem essas libs no library path do java, o Tomcat exibe a seguinte informação no log: “INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path”.

O primeiro passo é instalar as bibliotecas do APR e do OpenSSL. Para isso, execute o seguinte comando no Ubuntu (ou similares Debian):
««« Clique aqui para ler o restante do conteúdo: Bibliotecas Nativas do Tomcat »»»

Habilitando o JPA 2 no WebLogic Server

Por padrão o WebLogic Server não vem com o JPA 2 habilitado. Então ao utilizar recursos específicos do JPA 2 dentro do WebLogic Server você pode ter erros semelhantes a esse: java.lang.NoSuchMethodError: javax.persistence.EntityManager.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;

Para resolver esse problema é necessário colocar as libs do JPA 2 no início do classpath do WebLogic. As libs estão disponíveis no caminho $WL_HOME/modules e são as seguintes: javax.persistence_1.0.0.0_2-0-0.jar e com.oracle.jpa2support_1.0.0.0_2-0.jar.

Edite o arquivo setDomainEnv.[sh|cmd] e insira a variável PRE_CLASSPATH da seguinte maneira:

export PRE_CLASSPATH=$MW_HOME/modules/javax.persistence_1.0.0.0_2-0-0.jar:$MW_HOME/modules/com.oracle.jpa2support_1.0.0.0_2-0.jar

No windows, substitua o comando export por set e os dois pontos para ponto e vírgula. Altere o $MW_HOME para o home do middleware. Agora é só realizar deploy do seu aplicativo com JPA 2.

Enviando e-mail usando GMail

Nesse post eu irei criar uma classe que envia e-mail HTML de um servidor com autenticação usando SSL. Como exemplo, utilizaremos uma conta do GMail.

Primeiro passo é criar a conta do GMail (ou usar a sua). Acesse o site: http://www.gmail.com e clique em Criar uma conta (Create an account). Siga os passos e anote a senha. Faça o download da API do Java Mail no site: http://www.oracle.com/technetwork/java/index-138643.html e descompacte-a.

««« Clique aqui para ler o restante do conteúdo: Enviando e-mail usando GMail »»»

Alterando o espaço de cores

No Java temos uma classe muito importante para se trabalhar com conversão do espaço de cores em imagens: java.awt.image.ColorConvertOp. Essa classe realiza a conversão pixel a pixel do espaço de cores. Dessa forma, podemos facilmente converter uma imagem de um espaço de cores qualquer para algum definido. É necessário apenas criar um objeto dela passando o espaço de cores de origem e o de destino e depois chamar o método filter passando as duas imagens (origem e destino).

Por exemplo, se desejamos converter uma imagem de colorida para preto e branco, basta executar o seguinte código:

		BufferedImage dest = new BufferedImage(src.getWidth(), src.getHeight(),
				BufferedImage.TYPE_BYTE_BINARY);
		ColorConvertOp op = new ColorConvertOp(src.getColorModel()
				.getColorSpace(), dest.getColorModel().getColorSpace(), null);
		op.filter(src, dest);

Na linha 1 é criada uma imagem cinza não indexada (BufferedImage.TYPE_BYTE_GRAY) com o mesmo tamanho da imagem de origem (src.getWidth(), src.getHeight()). Os tipos você pode consultar no javadoc da java.awt.image.BufferedImage. Na linha 4 é criado um objeto que faz a conversão no espaço de cores e é passado os dois espaços de cores (origem e destino) a partir do ColorModel da imagem (img.getColorModel().getColorSpace()). Após isso é só invocar o método filter passando as duas imagens como parâmetro (linha 7).

Abaixo segue o resultado de conversão da bandeira do Brasil (primeira imagem), com três tipos de imagens: TYPE_BYTE_BINARY (segunda imagem), TYPE_BYTE_GRAY (terceira imagem) e TYPE_3BYTE_BGR (quarta imagem).

Brasil-Transformacao

Brasil-Transformacao

A conversão feita com o tipo TYPE_BYTE_BINARY foi utilizado no artigo do CAPTCHA para remoção do fundo.

« Página AnteriorPróxima Página »