quinta-feira, fevereiro 10, 2005

Java server pages, SAAJ, JAX-RPC, tudo uma grande confusão...

Pois é, nestes últimos tenho-me aventurado pelo grande mundo das Java Server Pages (JSP). Para alguém, como eu, que vinha do PHP e, pensava que todos os geradores dinâmicos de páginas fossem todos do género da simplicidade do PHP para configurar e começar a programar vaiam tirando o cavalinho da chuva. Para correr JSP é necessário um web server próprio, para além, de é claro, uma máquina virtual java com compilador instalada na mesma máquina onde esteja a correr o servidor de JSP, que, no meu caso, é o Apache Tomcat , e, uma vez por aquilo que li é, de entre todos os servidores de JSP, o mais chato de configurar porque é tudo feito via ficheiros do configuração, como o seu irmão mais velho, o servidor Web Apache propriamente dito. Acontece que o Tomcat é standalone, quer dizer, não depende da existência de outro servidor HTTP na mesma máquina, e corre numa porta própria: por defeito a 8080. É no entanto, possível interligar os dois através de dois módulos do Apache: um é o mod_proxy, outro é o mod_jk. Um ou outro, como tive oportunidade de testar funcionam bem: o melhor é o segundo, porque foi especialmente desenvolvido para esse efeito.
O problema é com Apache e Tomcat na mesma máquina o consumo na mesma máquina (eu testei em Windows) vai para cima dos 50 MB e o Tomcat como é escrito em JAVA, demora meio-minuto a arrancar completamente, mas depois, já de pé, não fica em nada atrás do Apache. O problema é que para depois tar a configurar aquilo tudo como deve de ser, não é nada simples para quem, como eu, está habituado ao "velho" Apache. As JSP é um mundo muito próprio que fala a sua própria língua.
Assim, por exemplo, em JSP, e ao contrário do PHP em que só existe dois tipos de tags : <? ?> e <?= ?> no PHP existem até quatro, parecidas com ASP: <% %>, <%= %>, <%! %>, e <%@ %>. Enquanto as duas primeiras têm practicamente a mesma finalidade das que lhe são idênticas em PHP, as duas últimas são específicas, a terceira é para declarar código Java de forma livre e a última é para declarar directiva, do estilo de import's, ao que parece, ainda não naveguei nisto a fundo para perceber isto ? Mas para que raio eu preciso de saber isto tudo ? Acontece que estou pensando em escrever Web Services usando JAVA, daí que precise de usar JSP. O Axis, motor que eu pretendo usar sobre o Tomcat, é escrito em JSP, e posso vir a precisar de saber JSP para saber como escrever os Web Services. Ainda não sei como isso se faz, mas espero vir a saber.

Entretanto, a implementação do CGA em JAVA vai "nos eixos": tem passado em quase todos os testes. Nem era de surpreender, dada a sua simplicidade, depois de usar o One-Max, a mais simples das funções em Algoritmos Genéticos, tentei experimentar com a Trap Function, mas acho que não sei muito bem como aquilo se define. Para determinar o máximo de funções reais de variável real é que tem funcionado perfeitamente !!! Agora espero conseguir resolver outros problemas com o meu CGA em Java. Net aí vou eu....