Não Importa javax.servlet.*;

Olá pessoal.

Tenho instalado em minha máquina o kit jsdk 1.4.2
e a cabei de instalar o Tomcat 4.1 p/ testes jsp e servlet.

Minha máquina roda o winme.

a Instalação foi perfeita, fiz as configurações necessárias e ele, o tamcat, está rodando
tanto jsp e servlet’s :wink:

agora, qdo tento em meu editor importar a classe servlet ele não acha.

Bem, sei q o servlet não faz parte da distribuição jdsk por isso baixei a versão do
j2ee 1.3.1 p/ poder usufrir de todos os beneficios da plataforma, como neste caso servlet.

contudo ainda assim não estou conseguindo achar a classe servlet.

import javax.servet.*; da erro informando q nao achou-a.

Bem, se eu instalei o j2ee não deveria estar tudo completo?

pessoal, vou colocar aqui as minhas variáveis de ambiente p/ q vc’s possam me indicar onde errei.

ps. Peguei o servlet.jar que o tomcat instalou na pasta

C:Arquivos de programasApache GroupTomcat 4.1commonlib

e coloquei na pasta

C:j2sdk1.4.2jrelib

pq pensei q fosse apenas isto que precisava + mesmo assim não deu certo.

JAVA_HOME=C:j2sdk1.4.2
J2EE_HOME=C:j2sdkee1.3.1

PATH=C:WINDOWSSYSTEM;C:WINDOWS;C:WINDOWSCOMMAND;
C:j2sdk1.4.2in;
C:j2sdkee1.3.1in;
C:j2sdk1.4.2lib ools.jar;
C:Arquivos de programasApache GroupTomcat 4.1commonlib;
C:Arquivos de programasApache GroupTomcat 4.1commonlibservlet.jar;
C:j2sdk1.4.2jrelib

CLASSPATH=.;C:j2sdk1.4.2in;C:j2sdk1.4.2lib;C:j2sdk1.4.2lib ools.jar;
C:Arquivos de programasApache GroupTomcat 4.1commonlib;
C:Arquivos de programasApache GroupTomcat 4.1commonlibservlet.jar;
C:j2sdk1.4.2jrelib

Seu servlet.jar está MESMO dentro da pasta common/lib do tomcat?
Já tive o mesmo problema c/o mesmo sistema…e seu espaço ambiente?
Tá poluído…

Não precisava ter colocado o arquivo no diretório do Java. Mantenha-o no diretório original.

Você reiniciou o computador depois que colocou o servlet.jar no classpath?

Observações adicionais:
Também não precisa daquele monte de coisa do j2sdk no classpath, bastaria o . e o caminho completo do servlet.jar
E no path, basta dos diretórios bin

[quote]Seu servlet.jar está MESMO dentro da pasta common/lib do tomcat?
Já tive o mesmo problema c/o mesmo sistema…e seu espaço ambiente?
Tá poluído…
[/quote]

C:Arquivos de programasApache GroupTomcat 4.1commonlib

Esta sim, bem ae…
qq vc quer dizer com poluído?

[quote]
Não precisava ter colocado o arquivo no diretório do Java. Mantenha-o no diretório original.

Você reiniciou o computador depois que colocou o servlet.jar no classpath? [/quote]

SIM

blz, + nao funca mesmo assim

rfpsatin,o q eu quis dizer é q vc pode estar estourando o seu espaço ambiente!Clique no seu autoexec.bat e veja se não aparece(em cima ou embaixo do prompt):SEM ESPAÇO AMBIENTE… se isso ocorrer,vc terá q editar o config.sys no seu Command(pq suas variáveis não estão sendo mapeadas/carregadas)… Já aconteceu exatamente a MESMA coisa comigo…só assim deu certo! :wink:

Era pare ter funcionado… veja se não digitou nada errado.
E já que você instalou o J2EE, pode colocar o j2ee.jar no classpath. Está dentro do diretório lib do J2EE.

Ironlynx, não aparece nada disso não

no msconfig, ambas as variáveis estão setadas.

do DOS dando um SET, tb traz tudo p/ a tela.

vou tentar colocar o q o Bani flw agora e vou reiniciar.

já volto colegas

abraço

Não deu diferença, continuo sem importar.

tenho uma dúvida,
se no classpath eu der o caminho
<<<C:j2sdk1.4.2jrelib>>> logico q sem os “<>”
ele não teria q encontrar os aquivos q estão la dentro, sendo assim o servlet.jar???

ou mesmo assim preciso colocar

C:j2sdk1.4.2jrelibservlet.jar ???

Não to entendendo pessoal, ta tudo aparentemente certo, pq nao funca

.;C&#58;j2sdk1.4.2in;C&#58;j2sdk1.4.2lib;C&#58;j2sdk1.4.2lib	ools.jar;C&#58;Arquivos de programasApache GroupTomcat 4.1commonlib;C&#58;Arquivos de programasApache GroupTomcat 4.1commonlibservlet.jar;C&#58;j2sdk1.4.2jrelib;C&#58;j2sdk1.4.2jrelibservlet.jar;C&#58;j2sdkee1.3.1libj2ee.jar

acima esta todo meu classpath, q q vc’s me indicam fazer?

abraço

Tudo que está no diretório lib do JSDK, por ser o diretório lib, ele detecta automaticamente. Colocando no classpath ou não, ele encontra o arquivo.
Mas se fosse um diretório comum, precisaria colocar o nome do arquivo.

Eu ainda acho que você digitou alguma coisa errada. Talvez no código.

E para aparecer as barrar utilize duas barras para cada barra.

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

import java.util.Date;
import java.text.DateFormat;

public class Hello extends HttpServlet
&#123;
    public void doGet &#40;HttpServletRequest req, HttpServletResponse res&#41;
        throws IOException, ServletException
    &#123;
        res.setContentType &#40;&quot;text/html&quot;&#41;;
        PrintWriter pw = new PrintWriter &#40;res.getOutputStream&#40;&#41;&#41;;
        pw.println &#40;&quot;&lt;HTML&gt;&quot;&#41;;
        pw.println &#40;&quot;&lt;BODY&gt;&quot;&#41;;
        pw.println &#40;&quot;&lt;H1&gt;Servlet Mínimo&lt;HR&gt;&lt;/H1&gt;&quot;&#41;;
	pw.println &#40;&quot;&lt;P&gt;Hoje é dia &quot; + DateFormat.getDateInstance&#40;&#41;.format&#40;new Date &#40;&#41;&#41;&#41;;
	pw.println &#40;&quot;&lt;P&gt;Também temos uma versão &quot;&#41;;
	pw.println &#40;&quot;&lt;A href=&quot;../index.jsp&quot;&gt;JSP&lt;/A&gt; desta mesma página&quot;&#41;;
	pw.println &#40;&quot;&lt;/BODY&gt;&quot;&#41;;
	pw.println &#40;&quot;&lt;/HTML&gt;&quot;&#41;;
	pw.flush &#40;&#41;;
	pw.close &#40;&#41;;
    &#125;
&#125;

não ta errado o código rs… da uma olhada.

[list]
.;C:\j2sdk1.4.2\bin;C:\j2sdk1.4.2\lib;C:\j2sdk1.4.2\lib\tools.jar;C:\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib;C:\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib\servlet.jar;C:\j2sdk1.4.2\jre\lib;C:\j2sdk1.4.2\jre\lib\servlet.jar;C:\j2sdkee1.3.1\lib\j2ee.jar
[/list]

Descompactei os fontes do javax, gerei entao uma pasta, coloquei ela na pasta do meu programa e ele funciona. contudo nao quero ter q fazer sempre isso. por isso afirma q o fonte ta certo.

Ok, o fonte está certo :smiley:

Tenta fazer javac -classpath .;“C:\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib\servlet.jar” Hello.java

Ah, aliás, acho que o problema são os espaços. Não pode ter espaço no classpath fora de aspas.

fiz exatamente como vc colocou… ele deu a mensagem de erro informando q não achou os “simbolos” da javax, tipo

E&#58;WEB-ROOThelloWEB-INFclassesHello.java&#58;1&#58; package javax.servlet does not exist
import javax.servlet.*;
^
E&#58;WEB-ROOThelloWEB-INFclassesHello.java&#58;2&#58; package javax.servlet.http does not exist
import javax.servlet.http.*;
^
E&#58;WEB-ROOThelloWEB-INFclassesHello.java&#58;8&#58; cannot resolve symbol
symbol  &#58; class HttpServlet 
location&#58; class Hello
public class Hello extends HttpServlet
                           ^
E&#58;WEB-ROOThelloWEB-INFclassesHello.java&#58;10&#58; cannot resolve symbol
symbol  &#58; class HttpServletRequest 
location&#58; class Hello
    public void doGet &#40;HttpServletRequest req, HttpServletResponse res&#41;
                       ^
E&#58;WEB-ROOThelloWEB-INFclassesHello.java&#58;10&#58; cannot resolve symbol
symbol  &#58; class HttpServletResponse 
location&#58; class Hello
    public void doGet &#40;HttpServletRequest req, HttpServletResponse res&#41;
                                               ^
E&#58;WEB-ROOThelloWEB-INFclassesHello.java&#58;11&#58; cannot resolve symbol
symbol  &#58; class ServletException 
location&#58; class Hello
        throws IOException, ServletException
                            ^
6 errors

Process completed.

perae, entao terei q recompor meu classpath algo como:

.;C&#58;\j2sdk1.4.2\bin;C&#58;\j2sdk1.4.2\lib;C&#58;\j2sdk1.4.2\lib\tools.jar;&quot;C&#58;\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib&quot;;&quot;C&#58;\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib\servlet.jar&quot;;C&#58;\j2sdk1.4.2\jre\lib;C&#58;\j2sdk1.4.2\jre\lib\servlet.jar;C&#58;\j2sdkee1.3.1\lib\j2ee.jar 

é isso? todo lugar q tiver “aquivos de programas …” tenho q colocar entre aspas? + vem ká, entao pq o tamcat ta funcionando? nao deveria dar erro na hora de converter o jsp p/ servet ?

O tomcat funciona porque, da mesma forma que no JDK, ele automaticamente considera no classpath tudo que está no diretório lib dele.

Ok, vamos ser práticos.
Por que você não instala uma IDE aí?
Aí é só criar um projeto, adicionar o servlet.jar no classpath do projeto (clicando no arquivo, sem chance de errar) e aí mandar compilar.

Quanto ao classpath, sim, é isso, mas de preferência apenas

.;&quot;C&#58;\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib\servlet.jar&quot;

(o resto que você colocou é totalmente inútil)

vou fazer uma coisa, vou tentar arrumar o classpath com “” e ja volto.

um abraço, obrigado por enquando

té logo

Partindo do principio q vc disse, q tudo q ta no lib ele importa automático, coloqueo o servlet.jar no C:\j2sdk1.4.2\lib e tb no
C:\j2sdk1.4.2\jre\lib

e mesmo assim não acha na hora de importar.

coloquei o caminho no classpath da forma como acima e tb colocando com o servlet, tipo - C:\j2sdk1.4.2\jre\lib\servlet.jar

tudo isso sempre entre aspas duplas, sendo separados pelo ;

bem, e mesmo assim não funciona. To já desistindo, tem + alguma coisa a fazer?

minha máquina roda o WinME, será talvez alguma limitação do ambiente?

Olha rfpsatin,eu uso o Win/MErdenium (Há 3 anos,comprei na semana de lançamento a minha máq q veio com ele)… Salvo aquele problema,q aconteceu justamente com servlet.jar,e o problema era ambiente das variáveis,nunca tive problemas…se serve de comparação,taí o meu Autoexec.bat:

SET windir=C&#58;\WINDOWS SET winbootdir=C&#58;\WINDOWS SET COMSPEC=C&#58;\WINDOWS\COMMAND.COM SET PROMPT=$p$g SET TEMP=C&#58;\WINDOWS\TEMP SET PATH=C&#58;JDK;C&#58;JDKBIN;C&#58;WINDOWS;&quot;C&#58;WINDOWSCOMMAND&quot;;C&#58;\J2sdk1.4.1_03\bin SET CLASSPATH=.;C&#58;\J2sdk1.4.1_03\lib\tools.jar;C&#58;\JDK\classes\servlet.jar;. SET TOMCAT_HOME=C&#58;TOMCAT SET JAVA_HOME=C&#58;\J2sdk1.4.1_03 SET CATALINA_HOME=\TOMCAT

WindowsME não é um sistema operacional muito bom, mas não acho que chegue ao ponto de ter essas “limitações”…

Não tenho mais nenhuma idéia, a não ser aquela “use uma IDE decente”.


Você pode até instalar plugins para Tomcat

E de preferência apague o servlet.jar lá do diretório lib, não é muito “bonito” ficar jogando os arquivos lá só para não precisar colocar no classpath.

Só uma dúvida besta, mas que pode fazer a diferença:

Onde vc não está conseguindo fazer o import? Seria dentro de um ambiente de desenvolvimento ?

Se for, que IDE vc está usando? Isso porque é necessário adicionar os arquivos .jar nas propriedades do projeto, Geralmente não reconhecem o classpath do sistema operacional.

Explique um pouco melhor o seu ambiente para que possamos ajudar.

[]s, Welington B. Souza