Problemas: Eclipse + Ubuntu 11 + jdk + J2EE

Seguinte… tenho um projeto que desde novembro havia sendo desenvolvido em: Ubuntu 10.04 + Eclipse + Tomcat 7 + Jdk 6 u 2

O problema é que… eu há algum tempo havia querendo atualizar o ubuntu pro 11, pra verificar um pouco da usabilidade gráfica do Unity, infelizmente o que eu temia aconteceu e acabei quebrando a cara…
Como 99% das vezes que ocorrem uma atualização de uma distro linux os caras parecem em vez de melhorarem eles acabam é piorando tudo.

O sistema foi instalado sem problemas (tirando ao fato que o driver do acelerador 3d/Glide não foi instalado e que os pacotes que a intel disponibiliza não funcionam nem compilam)
O eclipse havia sido instalado pela central de software do ubuntu ( o que eu acho ridiculo pois é uma instalação transparente, porém não lhe dá direito a escolher uma perspectiva de trabalho exemplo J2EE)
Ele acaba por instalar a versão Basic do eclipse… sem a perspectiva Enterprise

Pois bem, instalei o eclipse manualmente pelo .tar.gz baixando o software com a perspectiva J2EE embutida…
Juro que achei (até pela minha experiência em unix, que eu não teria grandes problemas com essa migração de SO) mero engano

Importei o projeto para o eclipse ok, a estrutura de classes e diretórios e demais arquivos foram alocadas sem problemas
Infelizmente o eclipse misteriosamente acusa erros em todas as classes que lidam ou que interagem com a perspectiva de importações da linguagem
Especificamente dos pacotes javax.servlet.*
não existe esta definição nos pacotes da linguagem
eu consigo acessar javax.swing.*
mas não consigo acessar nada do contexto javax.servlet.*

meu jdk é versão 6, o eclipse foi capaz de criar e executar um projeto teste, apenas para testar se a maq virtual realmente estava funcionando e etc
porém nada que se relacione com desenvolvimento web
como classes
HttpServletRequest
HttpServletResponse
Session
etc

isto é uma coisa que não faço a mínima idéia de como resolver pois ja fiz tudo que conheço:
O JDK instalado é: OpenJDK6 e 7 com as variáveis de ambientes setadas e funcionando
o eclipse instalado é versão Indigo: 3.22 com perspectiva EE
o tomcat é o tomcat 7 (porém isto não pode estar gerando o problema, pois não pude nem rodar o software neste contexto)

Resumidamente falando
quando eu na classe digo:

import javax.servlet.http.HttpServletRequest

o eclipse marca com um erro a linha do import dizendo que devo declarar a classe
ja naveguei no “proposals” que o eclipse dá e realmente ele acessa a classe javax. porém com a letra s o único pacote fornecido é javax.security

O mais interessante de tudo isto é:
Sempre fui muito mais apraz da ferramenta NetBeans, infelizmente não a utilizo por questões comerciais impostas no ambiente em que desenvolvo
misteriosamente não tive problema algum ao importar, instalar e rodar o projeto no net beans porém pra min só serve o eclipse por questões de compatibilidades futuras

Gostaria que alguém com experiência pudesse me dar alguma sugestão e por gentileza pedir que caso não exista uma certeza e fidelidade nem respondam este tópico… muita gente por aqui gosta de responder coisas que realmente desconhecem

Grato antecipadamente

Salientando também que:
Tenho o JDK 6 e 7 na maquina podendo selecioná-los através da própria interface do eclipse e ja testei-os rodando softwares diversos… OK

Cirei um Dinamic Web Project para fazer um teste e criei um Servlet através do menu New -> Servlet para testar…
O eclipse cria o servlet faz os imports mas msm assim marca com erros os que acessem javax.servlet.*

Ja consultei a API pra ver se havia alguma mudança… não houve

Talvez seja alguma limitação imposta ao eclipse pelo fato de eu ter instalado primeiro a versão J2SE do eclipse, porém sei que o eclipse roda apenas a partir de uma pasta principal contendo os arquivos de núcleo do software…
Partindo desta premissa executei o eclipse J2EE a partir da área de trabalho, cujo qual me perguntou novamente sobre workbench etc, porém o problema persistiu…

Amigo, eu acho que esse erro ai não tem relação alguma com o fato de usar Linux.

Acredito que falta apenas por o Server Runtime no classpath do teu projeto. Com certeza isso resolve.

Vai no BuildPath do projeto, opção libraries -> add library -> server runtime -> apache tomcat.

Claro, o Tomcat (ou qualquer outro AS) deve estar configurado no Eclipse antes de fazer esses passos.

Obrigado por responder…

Cara ja intalei o runtime do tomcat 7 no eclipse bem como ja migrei os arquivos xml para que as configurações funcionassem…
Infelizmente nada com sucesso

Olá, Eduardo.

Amigo, não basta o tomcat estar configurado no Eclipse. No classpath do projeto deve estar o “server runtime”, senão não rola.

Pode menos pra mim quando dá esse erro ai sempre é isso que estou te falando.

Olhe o “build path” do projeto e veja se não há nada em “warning” lá na aba “libraries”.

Abraços.

José… muito grato por tua atenção

É exatamente como estou lhe falando…
Ja inclui o runtime do tomcat no build path do projeto
A questão é:
Quando faço isso o eclipse configura um servidor para o projeto(vc ja deve saber isso), com seus respectivos arquivos padrão: web.xml, context.xml etc…

infelizmente eu utilizo conectores APR com criptografia TLS, bem como trabalho com JAAS realm e outras funcionalidades via xml

Ou seja… os respectivos arquivos de configuração para o servidor eu desconheço como possam ser importados portanto meu teste foi gerar o runtime padrão e apenas substituir os arquivos xml que contém configurações específicas
sem sucesso

O que busco neste momento talvez seja uma forma de conseguir rodar o projeto no runtime que estava antes
o que não entendo é que mesmo tendo salvo todos os arquivos, inclusive o runtime gerado anteriormente qdo o eclipse estava ok não possuo forma alguma de importar a configuração antiga…
qdo optei por atualizar o SO, não esperava que fosse encarar exatamente este problema, senão não teria feito isso…não neste momento

Pra você ter uma noção… a coisa é tão complexa envolvendo key store, conectores etc bem como todo um conjunto de roles de acesso e políticas de view que seria um tempo ruim para se perder, ter de modificar os arquivos xml novos com estas configurações…

Portanto o que realmente estou buscando no momento é alguma forma de pegar o “diretório” do runtime que foi gerado anteriormente e conseguir re-importa-lo

na gambiarra ou não

pelo visto na gambiarra não da certo

É, amigo… nesse cenário então não posso te ajudar.

De fato, mudar pra Linux traz complicações… Pra ser sincero só vi a vantagem de quase 0 preocupação com virus pois a performance é pior, a usabilidade é pior, o sistema trava muito (a propaganda de que linux não trava é fake) e acontecem coisas simplesmente sem explicação cuja solução você acha em fórum de linux experts que ensinam a compilar pacotes em C pra resolver o problema. E olha que já testei Fedora, Ubuntu e Suse (em até mesmo testei 64bits pra ver se era melhor).

E outra dica “off-topic” em relação ao assunto do tópico: se for usar o BrOffice / Libreoffice pra documentos “sérios”, considere sempre fazer backups manuais deles (copiar e colar mesmo) porque essa suite é terrivelmente bugada. Ela simplesmente APAGA todo teu arquivo do nada. Já aconteceu comigo e minha esposa e micros e distribuições diferentes do Linux. Casei de “dar soco em ponta de faca” e instalei o MSOffice com o Playonlinux e voltei ao paraiso da usabilidade e estabilidade :).

Boa sorte e compatilhe a solução aqui quando resolver, ok?

Abraços.

Bom caro colega :slight_smile:
(acho que posso retratar assim mesmo ao comentar este seu último reply rsrs)
1º vou comentar e depois respondo como resolvi a questão aqui de forma mais ou menos gambiarrística.
Infelizmente discordo quanto à muitas questões consideradas. Sou realmente utilizador de sistemas baseados no clássico UNIX há alguns bons 15 anos, porquê haja visto que toda e qualquer tecnologia moderna de SO’s traz consigo todos os conceitos e padrões do UNIX com suas respectivas melhorias, temos nestes exemplos: BSD, Android, Symbian, OS-X, HP-UX, Windows Seven, etc. Mesmo que algumas empresas comerciais insistam em mascarar o fato de que muitas de suas idéias foram copiadas a partir de projetos open-source e claro que no contexto da iniciativa privada, melhoradas e disponibilizadas comercialmente sob uma outra perspectiva de software. Concordo que linux em suas diversas distribuições deixam a desejar em muitos aspectos citados, como usabilidade e interatividade, porém existem “regras” para o release de software dentro do mercado que controlam versões stable de softwares sob fatores pesados de teste e depuração. Ou seja, linux pode ser realmente uma faca de 2 gumes quando migramos de ambiente… Eu no meu caso ja estava habituado com a versão anterior do ubuntu pois sou usuário a muito tempo de Debian e o ubuntu se parece muito com debian (este parecer, digo no que tange a bibliotecas, arquitetura e compatibilidade), infelizmente o Ubuntu novo partiu prum modelo de recurso visual chamado Unity, que creio eu ainda não possuir uma versão bacana e sólida (Substitudo ao antigo Compiz, que por sua vez foi quem colocou a MS pra correr e desenvolver o Aero bem como a versão Seven do Windows, consertando também a grande cagada do Vista). Mas nunca criticaria a estabilidade do meu unix, a não ser que eu, por erros cometidos comprometivesse a estabilidade do meu sistema… nunca como uma coisa “de fábrica”. Meu problema aqui no caso foi com o eclipse, que mesmo tendo importado meu projeto para o workbench, me acusou severas falhas de bibliotecas e ainda por cima não gerou meu runtime…

Fuçando consegui entender e fiz uma pequena gambiarra também, vou explicar:
meu projeto possui todos os arquivos de biblioteca em sua pasta local, como driver jdbc entre outros…

NOTA: quando importei o projeto tive de re-apontar os jars do projeto pois ele não havia salvo o caminho como relativo…

qdo percebi que faltavam as classes javax.servlet.http.HttpServletRequest notei que havia algo estranho e tive de importar para o projeto a pasta /lib do tomcat que contem os jars da api de Servlets
NOTA: atualmente as IDE’s geralmente fazem tudo de forma transparente e no padrão “one-click” o que faz a gente esquecer de onde aquilo realmente veio… achei estranho o eclipse não ter me dado durante a primeira execução ou importação do projeto uma mensagem mais explícita… sou os warnings tradicionais.
Ao criar o RunTime o eclipse não aceita de jeito nenhum os arquivos de runtime untigos… pelo menos aqui não consegui
tive de criar um novo runtime, direcionar para a pasta do tomcat e manualmente substituir o conteúdo dos trechos de arquivos .xml, a simples substituição dos arquivos não funcionou.

Grato pela atenção e ajuda