Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

sexta-feira, 23 de novembro de 2007

Problema: Java + Fedora 8

Ontem, eu estava com o Eclipse 3.3.1 aberto - quando resolvi testar o JBoss Tools.
Baixei do site, talz, criei um novo Dynamic Web Project, coloquei os facets (ou facelets, sei lá)... quando de repente, ao tentar criar um JSP, o Eclipse fecha.

Bem, eu, obviamente, pensei que tinha sido um dos famosos PermGen Error.

Mas não era.

Como eu tenho o costume de abrir o Eclipse por linha de comando, eu vi que lá, ao invés do erro do PermGen, estava isso daqui:

eclipse: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.

Bem, eu pensei, deve ser erro do JBoss Tools.
Tentei de novo.
Mesmo erro.

Googlando por ai, eu encontrei diversos bugs abertos, mas nada de importante resolvido, até que eu resolvi ler o bug da Sun até o final.

Segundo os caras:

"(...) JDK is using a statically linked, non-thread-safe copy of libXinerama(...)"

Como eu não sou programador X, nem C=C+1, e sim programador Java, eu precisava de uma solucão.
E um cara chamado Josh Triplett postou nesse bug mesmo, uma solucão, que resolveu meu caso:

(O Josh postou a solucao com um caminho completo para esso .so, mas eu fiz usando $JAVA_HOME e funcionou.)

sed -i  's/XINERAMA/FAKEEXTN/g' $JAVA_HOME/jre/lib/i386/xawt/libmawt.so

E, ao tentar criar o JSP, tudo funcionou as mil maravilhas.

(Nota: Eu percebi que esse erro também ocorria ao tentar rodar programas Swing/AWT com a VM Sun)
(Nota 2: Se alguém descobrir que esse erro causa algum problema, avise-me )

Blogged with Flock

segunda-feira, 19 de novembro de 2007

Adobe Flex

What is it?

Uma solucao para RIA (Rich Internet Application) que não tem os mesmos limites de tecnologias com JSON, Ajax, GWT e etc. por ser baseada em Flash.

How does it works?

(MXML+ActionScript+Flash Class Library)+Compile=something.swf

Esse something.swf roda em um html, em um browser com o Adobe Flash Player.

Esse swf se comunica com o webserver, que, por sua vez, se comunica com todas as outras tecnologias java (J2EE, Web services e etc..)

how-does-flex-works

And?


Ainda não aprendi muito sobre a tecnologia para falar se é bom ou ruim. Mas de inicio eu já posso falar que eu nao gostei da dependencia com o Flash Player e por ser feito com ActionScript e MXML - que, provavelmente vai exigir uma curva de aprendizado para muitos desenvolvedores. Por outro lado, o Flex dá uma interface extremamente rica, e bem rápida (usando ADF11g como exemplo) para aplicacões web - com o beneficio da integração com Java ( e com o Eclipse, por meio de plugin).

Mais informacões:
- Apresentacão do Flex (c/ Java);
- Flex.org/Java

Blogged with Flock

quarta-feira, 5 de setembro de 2007

Atualizando componentes com actionListeners

Esse é um assunto que eu devo ter demorado uns 3 dias para descobrir como fazia.

O meu problema era: Eu tinha dois faces com componentes diferentes e eu simplesmente não conseguia colocar partialTriggers nos componentes (que estavam em facets separados).

O jeito foi então, colocar um ActionListener (ou um SelectionListener, dependendo do componente) e pelo actionListener forçar a atualização pelo código... mas como fazer?

Exemplo do componente:

<af:commandButton text="Botao atualizavel" actionnListenter="#{managedBeanTest.processAction}"

Já o componente que vai ser atualizado, é colocado normalmente na pagina jspx -- a única diferença é que você terá que bindar o componente pai (o painelLayout ou qualquer outro) e o componente que vai ser atualizado no managedBean.

o código do proccessAction é mais ou menos assim:

public void proccessAction(ActionEvent event){
//componente a ser atualizado
outputText.setValue("Esse componente foi atualizado via codigo!");
//parentComponet = componente pai
AdfFacesContext.getCurrentInstance().addPartialTarget(parentComponet);
}



O único truque é pegar a instanciá do adffaces e adicionar o componente pai para ser atualizado. =D
(Eu tentei colocar o componente diretamente, mas não deu certo =( )

Lembrando de colocar o componente que vai ativar a atualização como partialSubmit=true para que não haja um refresh total da página.

terça-feira, 4 de setembro de 2007

O que é ADF?

Primeiro, é necessário explicar o que é JSF, já que o ADF é uma implementação do JSF.

JSF é um framework Java que auxilia o desenvolvedor a criar interfaces de usuários (UI - User Interfaces).
Ao contrário de outros framework, que são orientados pelo modelo MVC (Model-View-Controller -- onde cada
parte da aplicação é separada e só sabe fazer a sua parte o Controller controla o acesso aos componentes View;
Model contem as regras de negocio; View só contem as interfaces) o JSF é component-driven ("orientado a componentes": onde o
estado dos componentes são salvos na sessão a cada request e são restaurados depois do request).

Usando esse framework, a Oracle criou seu ADF Rich Client, que nada mais é que os componentes JSF (botões, tabelas...) remodelados
e potencializados para as tecnologias Oracle -- usando além do component-driven, o MVC.

Em 2006 a Oracle doou o ADF Faces para a Apache, pelos seguintes motivos:

"(...)Oracle believes in Java, our middleware and tools strategy relies heavily on the Java platform. We also believe JSF is the most promisingusertechnology. Java needs to have a good component based UI framework to compete with .Net. In order for JSF to be successful andaccelerate itsadoption, Oracle decided to provide (free of charge) a rich set of UI components to help web application developers who chooseJavaServer Faces. Therefore we decided to get behind JSF and MyFaces by making the ADF Faces donation to Apache. Moving forward, we are hoping that this opensource contribution will spark additional interest and that more vendors are going to join the MyFaces project and strengthenthe Faces community.(...)"

Então, o ADF virou MyFaces Trinidad.

Mas isso não quis dizer que o ADF morreu. Até porque, segundo a propria Oracle: "O ADF é extremamente importante para as tecnologias Oracle, já que nossas UI são baseados nele".

Então a Oracle, usando da licença da Apache, criou suas novas versões do ADF -- incluindo o 11g que utiliza, além do JSF, o Ajax e toda tecnologia da Web 2.0.