Configurações do Tomcat no Eclipse por "debaixo dos panos"

Pessoal,

Está acontecendo o seguinte:

No meu projeto, dentro do eclipse, adiciono os .jar no build path. (no eclipse: Propriedades do projeto -> Java Build Path->Libraries)
Feito isso, adiciono o projeto ao classpath do Tomcat. (no eclipse: window->preferences->Tomcat->Advanced->Add Java projects to Tomcat classpath)

Desta forma, ao rodar o projeto utilizando o plugin do tomcat, dentro do eclipse, não tenho problema algum na execução da aplicação.

Porém, se eu iniciar o tomcat fora do eclipse, e tentar executar a aplicação, a mesma retorna erros como “invoke exception” e “class not found”, durante a execução. :?

Alguem saberia como eu poderia fazer para realizar estas configurações mencionadas acima (que o eclipse faz através dos menus dele), manualmente? :roll:
Preciso configurar algo dentro do catalina.properties ? Ou será que é alguma variavel de ambiente que estou esquecendo?

Já tentei “setar”(odeio essa palavra :wink: ) uma variável de ambiente “APP_LIB”, com o caminho dos libs, e adicionar ao CLASSPATH, mas não obtive sucesso.

Estou utilizando o Eclipse WTP Version: 3.2.2 ; jdk 1.5 e Tomcat 5.5.

Obrigado.

Sokoban,

a primeira coisa a verificar é se a pasta WEBAPP que o tomcat utiliza eh a mesma que o eclipse está utilizando quando você roda o tomcat dentro do eclipse.

outra coisa que você pode fazer e entrar no seu workspace do eclipse e gerar um arquivo “.war”, depois iniciar o tomcat(fora do eclipse) e jogar este arquivo dentro da pasta “webapp”. Desta forma o tomcat vai descompactar os aquivos e teoricamente sua aplicação sai funcionando.

[quote=lmprates]Sokoban,

a primeira coisa a verificar é se a pasta WEBAPP que o tomcat utiliza eh a mesma que o eclipse está utilizando quando você roda o tomcat dentro do eclipse.

outra coisa que você pode fazer e entrar no seu workspace do eclipse e gerar um arquivo “.war”, depois iniciar o tomcat(fora do eclipse) e jogar este arquivo dentro da pasta “webapp”. Desta forma o tomcat vai descompactar os aquivos e teoricamente sua aplicação sai funcionando.

[/quote]

Imprates,

Na verdade eu estou tendo problema mesmo é com o WebService do projeto.

Portanto, eu gero o “.aar” e faço o deploy dentro da pasta “services” do Axis 2, que por sua vez está no “WebApps” do Tomcat.(Utilizei este tutorial para criar o serviço: http://wso2.org/library/1719)

Utilizo o “Axis 2 Server Generator” para gerar o meu “.aar”. Eu já adicionei todos .jars na hora da criação do arquivo “.aar”. Já até abri o arquivo “.aar” pra conferir se estava tudo lá dentro, e pelo menos os jars da pasta lib, realmente estavam lá. :roll:

Não sei onde pode estar o problema, mas desconfio do path do tomcat. :cry: Acho muito estranho rodar perfeitamente quando iniciado o tomcat pelo eclipse, e dar erro ao executar o tomcat fora do eclipse.

Pra não confundir muito, deixem de lado a parte do WebService.

Portanto, eu estou precisando mesmo no momento é saber como eu faço pra alterar o “classpath” do tomcat 5.5 (sei que tem relação com aquelas pastas “shared”, “commons”, etc…).

Alguem saberia me dizer?

Ok pessoal, apesar de não ter sido da melhor forma, acho que resolvi meu problema.

A quem interessar, segue a solução que encontrei:

Precisava saber o que era que o Eclipse fazia automaticamente, quando eu escolhia que era para “adicionar a pasta do projeto ao classpath do tomcat”.
O tal “classpath” do tomcat é onde o tomcat procurava os arquivos que precisava para rodar as aplicações. Acabei achando a resposta aqui: http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html

Após isso, pude prosseguir para a solução do meu segundo problema, que era o fato do Tomcat não reconhecer alguns arquivos do meu serviço, que por sua vez era “hospedado” através de um arquivo .aar que ficava na pasta do axis2:

[b]X:\ <>\WEBAPPS\axis2\WEB-INF\services[/b].

Apesar de teoricamente todos os .class estarem no .aar que o Axis 2 gera, e apesar de eu ter solicitado, na criação do .aar, que os .jar do meu projeto também fossem incluidos neste arquivo (.aar), mesmo assim minha aplicação não funcionava.

Só consegui fazer funcionar depois que:

  1. Copiei todos os arquivos da pasta class do meu projeto para o diretorio:
    X:\ <>\WEBAPPS\axis2\WEB-INF\classes

  2. Copiei todos os arquivos da pasta lib do meu projeto para o diretorio:
    X:\ <>\WEBAPPS\axis2\WEB-INF\lib

    Como eu disse anteriormente, não sei porque tive que fazer isso pra funcionar, já que todos os arquivos .class e .jar das pastas mencionadas anteriomente realmente se encontram dentro do arquivo do serviço (.aar) .

    Espero que isso ajude alguem. E sei que está longe de ser a melhor solução.

    Quem quiser comentar algo…

[quote=Sokoban] Ok pessoal, apesar de não ter sido da melhor forma, acho que resolvi meu problema.

A quem interessar, segue a solução que encontrei:

Precisava saber o que era que o Eclipse fazia automaticamente, quando eu escolhia que era para “adicionar a pasta do projeto ao classpath do tomcat”.
O tal “classpath” do tomcat é onde o tomcat procurava os arquivos que precisava para rodar as aplicações. Acabei achando a resposta aqui: http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html

Após isso, pude prosseguir para a solução do meu segundo problema, que era o fato do Tomcat não reconhecer alguns arquivos do meu serviço, que por sua vez era “hospedado” através de um arquivo .aar que ficava na pasta do axis2:

[b]X:\ <>\WEBAPPS\axis2\WEB-INF\services[/b].

Apesar de teoricamente todos os .class estarem no .aar que o Axis 2 gera, e apesar de eu ter solicitado, na criação do .aar, que os .jar do meu projeto também fossem incluidos neste arquivo (.aar), mesmo assim minha aplicação não funcionava.

Só consegui fazer funcionar depois que:

  1. Copiei todos os arquivos da pasta class do meu projeto para o diretorio:
    X:\ <>\WEBAPPS\axis2\WEB-INF\classes

  2. Copiei todos os arquivos da pasta lib do meu projeto para o diretorio:
    X:\ <>\WEBAPPS\axis2\WEB-INF\lib

    Como eu disse anteriormente, não sei porque tive que fazer isso pra funcionar, já que todos os arquivos .class e .jar das pastas mencionadas anteriomente realmente se encontram dentro do arquivo do serviço (.aar) .

    Espero que isso ajude alguem. E sei que está longe de ser a melhor solução.

    Quem quiser comentar algo…

[/quote]

Estou com um problema semelhante mas é com jtds,

Class Not found : net.sourceforge.jtds.jdbc.Driver 

tentei copiar tudo e colocar na pasta mais sem sucesso. tem mais alguma dica??