Colocando uma aplicação no provedor (linux)

4 respostas
spranta

Pessoal, tenho um site em um provedor, daí fiz uma aplicação e quero disponibilizá-la para meu cliente, a aplicação funciona perfeitamente em minha maquina (Windows), ela usa usa Struts, o servidor está corretamente configurado, pois ele compila meus jsp’s e executa servlets (normais), no entanto, todos os servlets desta minha aplicação são extenssões da Action do Struts e quando eu jogo ela no meu provedor nenhum servlet é processado pois não é achado. Estou desesperado pois preciso apresentar isto para o cliente, estou desconfiado é que o classpath da aplicação que indica a localização dos jars utiilzados não está sendo reconhecido, além disso o meu provedor usa Linux (Fedora) e eu ainda nao tenho dominio sobre este ambiente, enfim, gostaria de saber de voces se alguem sabe de alguma configuração especial necessária neste tipo de situação, pois eu simplesmente coloquei a aplicação na raiz do meu site, para reconhecer o classpath basta jogar o arquivo .classpath gerado pelo eclipse na raiz da aplicação? pois foi isto que eu fiz, e como já disse, acho que é o classpath que ele não está reconhecendo. Espero que possam me ajudar pois o provedor já me mostrou que servlets e jsp funcionam e este tipo de suporte eles nao oferecem. Desde já agradeço a todos

4 Respostas

Thiago_Senna

o arquivo classpath que é gerado no windows é o mesmo gerado no linux???
Pois se vc for fazer na unha, a forma de declarar as variáveis de ambiente é realmente diferente… será que o eclipse já trata isso??

Bom, eu acho que sim, né!

Experimenta declarar as variábeis de ambiente na mão mesmo!!!

Declare o classpath no arquivo ~/.profile

CLASSPATH=$CLASSPATH:/meu/local/onde/estao/os/jars

ou

CLASSPATH=.;$JAVA_HOME/lib:/meu/local/onde/estao/os/jars

No final, não esqueça do comando export

export CLASSPATH

spranta

Thiago, obrigado pela resposta, no entanto, como já falei sou um tanto leigo no Linux, e por isso quando vc citou um tal arquivo ~/.profile fiquei meio confuso pois nao sei que arquivo é esse, minha aplicação nao tem esse arquivo, como já falei ela tem é o arquivo .classpath, seria este o equivalente em Linux? De qualquer forma estou colocando abaixo o conteudo do meu arquivo .classpath para vcs analisarem e ver se seria isto mesmo.
Mais uma vez obrigado

<?xml version="1.0" encoding="UTF-8"?>
&lt;classpath&gt;
    &lt;classpathentry kind="src" path="j2src"/&gt;
    &lt;classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/classes12.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/c3p0-0.8.4.5.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/cglib-full-2.0.2.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-beanutils.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-collections-2.1.1.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-digester.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-fileupload.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-lang-1.0.1.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-logging-1.0.4.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-validator.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/dom4j-1.4.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/ehcache-0.9.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/hibernate2.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/jakarta-oro.jar"/&gt;
    &lt;classpathentry kind="lib" path="WebModule/WEB-INF/lib/jta.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/odmg-3.0.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/oscache-2.0.1.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/pager-taglib.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/struts.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/struts-legacy.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/swarmcache-1.0rc2.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-logging.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/commons-collections.jar"/&gt;
    &lt;classpathentry kind="lib" path="WEB-INF/lib/antlr.jar"/&gt;
    &lt;classpathentry kind="output" path="WEB-INF/classes"/&gt;
&lt;/classpath&gt;

Acho que a tag abaixo que referencia a jre pode tirar né, até porque provavelmente o provedor lá nao deve ter o eclipse instalado e por isso nao acharia esta referencia

&lt;classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/&gt;
Thiago_Senna

Cara… eu num sou a pessoa mais indicada para ajudá-lo!!

o que posso sugerir é você colocar as bibliotecas no classpath da sua máquina servidora!!!

Bom, vc deve colocar os seus jar no classpath do sistema, talvez isso resolva!!!

É igual quando vocÊ configura no windows… vc instala o jdk e configura as variáveis de ambiente JAVA_HOME, CLASSPATH e PATH.

Vc tem 3 opções…

1 - edita o arquivo /etc/profile
Coloque aquela linha que te passei no final deste arquivo…

2 - edita o arquivo /home/[seu_usuario]/.profile
Coloque aquela linha que te passei no final deste arquivo…

3 - a pior das soluções é esta:
copiar seus jars para dentro do diretório commons/lib do tomcat!!!

Mas de boa… não siga meus conselhos… espere que outros membros do guj mais experientes postem alguma coisa sobre o assunto ou faça uma pesquisa mais detalhada sobre o problema!!

spranta

Pois é Tiago, o lançe de colocar os jar no classpath do sistema é impossível para mim pois o provedor não oferece esse tipo de configuração pessoal para os clientes, pois isso seria configuração do sistema e nao da conta.
De qualquer forma obrigado pela ajuda, vou ficar quebrando a cabeça aqui e esperando por mais alguma ajuda.

Criado 4 de março de 2005
Ultima resposta 4 de mar. de 2005
Respostas 4
Participantes 2