Acho que não tem nada de errado com o código acima...... está bem simples....
O problema também pode estar no AutoExec...... que está assim:
SET JAVA_HOME=C:j2sdk
SET JSWDK_HOME=C:JSDK2.0
SET J2EE_HOME=C:j2sdkee1.3.1
SET TOMCAT_HOME=C:Arquivos de programasApache GroupTomcat 4.1
SET PATH=C:WINDOWS;C:WINDOWSCOMMAND;"C:Arquivos de programasNorton SystemWorksNorton Ghost";C:j2sdkin;C:j2sdkjrein;"C:Arquivos de programasApache GroupTomcat 4.1commonlib"
SET CLASSPATH=.;C:j2sdklib*.jar;C:j2sdkee1.3.1lib*.jar;C:j2sdk;
e mais algumas linhas que não são muito importantes.... (são sobre o temp, o windir e prompt). Alguém sabe porque RAIOS eu não consigo compila e nem roda meu servlets?? Ah....... todos os outros arquivos em java compilam e rodam normalmente!
qdo eu vo compila, ele da 5 erros: 2 nas importações do servlet ( javax.servlet.* e no javax.servlet.http.* ) e os outros 3 são no “extends Servlet” (ele ñ acha), e no HttpServletRequest e no HttpServletResponse
Mas se é assim, porque RAIOS eu consigo compila os outros arquivos de java normalmente??
Acabei de fazer um teste aki e consegui compila e roda o programa abaixo normalmente. Só não consigo compila e roda os Servlets. Veja o código do programa que eu acabei de rodar (note que também há importações)
importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassProgCalcextendsJFrameimplementsActionListener{intb,c,d,e,f;JPanelpc,ps;JLabellblPC,lblNum,lblRes,lblFinal;JTextFieldtxtNum;JButtonbtnPar,btnFat,btnPrimo,btnPer;publicProgCalc(){pc=newJPanel(newGridLayout(3,2,10,10));ps=newJPanel();lblPC=newJLabel("Programa de Cálculo",SwingConstants.CENTER);lblNum=newJLabel("Número",SwingConstants.RIGHT);lblRes=newJLabel("Resultado:");lblFinal=newJLabel();txtNum=newJTextField(10);btnPar=newJButton("Par/Impar");btnPar.addActionListener(this);btnFat=newJButton("Fatorial");btnFat.addActionListener(this);btnPrimo=newJButton("Primo");btnPrimo.addActionListener(this);btnPer=newJButton("Perfeito");btnPer.addActionListener(this);}publicvoidmostra(){txtNum.setText("0");Containercp=getContentPane();cp.add(lblPC,"North");pc.add(lblNum);pc.add(txtNum);pc.add(btnPar);pc.add(btnFat);pc.add(btnPrimo);pc.add(btnPer);cp.add(pc,"Center");ps.add(lblRes);ps.add(lblFinal);cp.add(ps,"South");setTitle("Eventos de Cálculo");//setBounds(100, 200, 300, 250);pack();setLocation(350,300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidactionPerformed(ActionEventevt){Objectsource=evt.getSource();Stringa=txtNum.getText();intn=Integer.parseInt(txtNum.getText());try{if(source==btnPar){if(n%2==0)lblFinal.setText("O número "+a+" é par");elselblFinal.setText("O número "+a+" é impar");}if(source==btnFat){b=1;c=1;if(n>33)lblFinal.setText(n+" é muito alto, favor digitar um menor");else{for(b=1;b<=n;b++){c*=b;}lblFinal.setText(""+c);}}if(source==btnPrimo){b=1;c=1;if(n/2<1)lblFinal.setText(a+" não é primo");elseif(n==2||n==3)lblFinal.setText(a+" é primo");else{for(b=2;b<=n/2;b++){if(n%b==0){lblFinal.setText("O número "+a+" não é primo");return;}elselblFinal.setText("O número "+a+" é primo");}}}if(source==btnPer){b=1;c=0;for(b=1;b<=n/2;b++){if(n%b==0){c+=b;if(c==n)lblFinal.setText("O número "+a+" é perfeito");elselblFinal.setText("O número "+a+" não é perfeito");}}}}catch(NumberFormatExceptione){Stringd=e.getMessage();JOptionPane.showMessageDialog(null,d);n=0;txtNum.requestFocus();}catch(ArithmeticExceptione){Stringd=e.getMessage();JOptionPane.showMessageDialog(null,d);n=0;txtNum.requestFocus();}}publicstaticvoidmain(String[]args){ProgCalcb=newProgCalc();b.mostra();}}
RodrigoSol
E o servlet.jar tah no seu classpath? eu acho que não. Da uma olhada aí.
fel_augusto
Acabei de fazer o teste, e tambem não deu certo ñ
Eu coloquei o Servlet.jar que está no C:jswdk-1.0.1libservlet, e o que ta na pasta do TOMCAT - (qndo eu coloco esse, ele fala que ta “sem espeço de Ambiente” e seu eu coloco qualker outro, o AutoExec não da nenhum erro)
Mais alguma coisa q eu possa fazer??
RodrigoSol
Tente compilar passando -classpath <caminho e nome do servlet.jar> no comando javac
fel_augusto
RodrigoSol, vlw mesmo. Usando o -classpath <caminho e nome do servlet.jar> eu consegui compila o servlet. Agora eu só queria saber uma coisinha: porque usando isso (-classpath <caminho e nome do servlet.jar>) eu consigo compila e no normal não, sendo que o mesmo arquivo já está no meu AutoExec?? Eu vo te que usa esse comando toda vez que eu for compila um Servlet??
Olha meu AutoExec:
SETPATH=C:\WINDOWS;C:\WINDOWS\COMMAND;"C:\Arquivos de programas\Norton SystemWorks\Norton Ghost\";C:\j2sdk\bin;C:\j2sdk\jre\bin;SET CLASSPATH=.;C:\j2sdk\lib\*.jar;C:\j2sdk;C:\j2sdkee1.3.1\lib\*.jar;C:\Arquivos de programas\Apache Group\Tomcat 4.1\common\lib\*.jar";C:\jswdk-1.0.1\lib\servlet.jar;" ^^^^^^^^^^^^^^ é esse servlet que eu coloco quando vou compila (javac -classpath C:\jswdk-1.0.1\lib\servlet.jar; nome_do_arquivo.java).
fel_augusto
Blezura agora… bem agora eu já estou conseguindo compila os meus Servlet, porém, eu não estou consiguindo rodar eles. Estou usando o jswdk1.0.1 da Sun. Nele já vem o varios arquivos de Exemplos, e esses eu consigo rodar, só os meus que não. Por Exemplo, na pasta servlet, tem um arquivo SnoopServlet, que está configurado para ser “chamado” quando escrever snoop no browser. Esse funciona normalmente. Mas os que eu faço já não funciona. Aparece um erro de “Socket is Closed”. O que isso pode ser?? Ah, as configurações que eu tenho que fazer, quais são?? Eu sei que tenho q colocar meus servlet na pasta servlet e especificá-los no arquivo servlet.properties… É só issu??
Acabei de fazer um pequeno teste aki, e descobri que se eu copia todo o código do SnoopServlet (que está funcionando) e colocar na pasta com um outro nome, eu não consigo fazer ele rodar.