Servlets no Ubunto

3 respostas
G

Criei uma classe servlets basica para testa o modo de compilação javac pelo terminal do Linux mas quando salvo o meu código com o formato .java e dou o comando javac + nome do arquivo aparece o seguinte erro:

uso.java:14: class Hello is public, should be declared in a file named Hello.java
public class Hello extends HttpServlet {
       ^
uso.java:4: package javax.servlet does not exist
import javax.servlet.ServletException;
                    ^
uso.java:5: package javax.servlet.annotation does not exist
import javax.servlet.annotation.WebServlet;
                               ^
uso.java:6: package javax.servlet.http does not exist
import javax.servlet.http.HttpServlet;
                         ^
uso.java:7: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletRequest;
                         ^
uso.java:8: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletResponse;
                         ^
uso.java:14: cannot find symbol
symbol: class HttpServlet
public class Hello extends HttpServlet {
                           ^
uso.java:13: cannot find symbol
symbol: class WebServlet
@WebServlet("/Hello")
 ^
uso.java:27: cannot find symbol
symbol  : class HttpServletRequest
location: class Hello
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	                     ^
uso.java:27: cannot find symbol
symbol  : class HttpServletResponse
location: class Hello
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	                                                 ^
uso.java:27: cannot find symbol
symbol  : class ServletException
location: class Hello
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	                                                                                      ^
uso.java:34: cannot find symbol
symbol  : class HttpServletRequest
location: class Hello
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	                      ^
uso.java:34: cannot find symbol
symbol  : class HttpServletResponse
location: class Hello
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	                                                  ^
uso.java:34: cannot find symbol
symbol  : class ServletException
location: class Hello
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	                                                                                       ^
14 errors

O código do meu servlets é este:

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Hello
 */
@WebServlet("/Hello")
public class Hello extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public Hello() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}

Obs: Sempre compilo minhas classes java assim, até acabei de compilar uma agora pra testa, mas o problema msm é o servlets.
tenho que configurar alguma variavel amais no llinux?

3 Respostas

fabiozanardi

Opa,

o primeiro erro é que o arquivo da classe deve se chamar Hello.java, deve estar com outro nome

os demais é que está faltando os jars do servlet para compilar,

se for compilar o servlet pelo comando javac vai ter que colocar no CLASS_PATH do java a pasta que estão os jars do tomcat,

até +

zoren

Tem dois erros aí

1 - O nome da classe publica deve ser o mesmo nome do arquivo;

2 - Vc precisa incluir as bibliotecas do servidor que vc está usando no seu classpath para conseguir compilar o seu código;

Dá uma olhada no parâmetro classpath do javac.

G

BLZ gente acho que entendi…
Os jars do Tomcat estão na pasta lib do diretorio opt/tomcat
então devo referenciar esta pasta no comando javac?
Tem como me mostrarem um exemplo de compilação?

Criado 9 de outubro de 2012
Ultima resposta 9 de out. de 2012
Respostas 3
Participantes 3