2012-02-28 19 views
8

Tengo esta gran pregunta para principiantes. Cuando intento lo siguiente; el 'servlet' se vuelve rojo e indica 'No se puede resolver el símbolo' servlet '.no se puede resolver el símbolo 'servlet'

import javax.servlet.http.*; 
import javax.servlet.ServletException; 

Tengo apache tomcat en ejecución. Soy un novato de Java muy grande. ¿Alguien puede ayudarme a encontrar una biblioteca servlet o algo así? Busqué en Google pero no obtuve una explicación clara de cómo hacer que esto funcione.

Este es el contenido de mi archivo web.xml;

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5"> 

    <display-name> 
     HelloWorld 
    </display-name> 
    <description> 
     This is my first webapp 
    </description> 

    <servlet> 
     <servlet-name>Hello world!</servlet-name> 
     <description>This is a hello world servlet</description> 
     <servlet-class>servlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloWorldServlet</servlet-name> 
     <url-pattern>HelloWorldServlet</url-pattern> 
    </servlet-mapping> 

</web-app> 

EDIT: uso el IDE IntelliJ IDEA. Y estoy usando Maven.

Respuesta

12

El jar de servlet debe estar en su ruta de compilación.

Si está utilizando Maven usted puede hacer esto:

<dependency> 
<groupId>org.apache.tomcat</groupId> 
<artifactId>tomcat-servlet-api</artifactId> 
<version>7.0.21</version> 
<scope>provided</scope> 
</dependency> 

o utilizar uno de los proveedores que se encuentran here, tales como el siguiente, que no depende de un contenedor específico:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.0.1</version> 
    <scope>provided</scope> 
</dependency> 
3

Parece que le falta una entrada de classpath para servlet.jar. No nos ha dicho cómo está compilando esto, pero básicamente necesita compilar contra servlet.jar. No debería tener que colocarlo explícitamente en cualquier lugar para la ejecución de vez, ya que Tomcat debería encargarse de eso.

+0

@BWestra: Si eres 100% nuevo en Java, te sugiero que comiences con programas más simples en lugar de servlets. Aprende los conceptos básicos a través de aplicaciones de consola simples. La forma de agregar una biblioteca a su ruta de clases depende de cómo se desarrolle; no nos ha dicho nada acerca de si está utilizando un IDE, compilando desde la línea de comandos, usando Ant, Maven o lo que sea. –

+0

@BWestra: Bueno, si está trabajando con Maven, debería saber cómo trabajar con dependencias en general, y básicamente necesita las dependencias de servlet.Yo no uso a Maven, pero la respuesta de NimChimpsky parece que está en la línea correcta. Sugiero intentar usar una dependencia que * no es * específica de Tomcat. –

0
<servlet> 
    <servlet-name>Hello world!</servlet-name> 
    <description>This is a hello world servlet</description> 
    <servlet-class>servlet</servlet-class> <--here is full name of your servlet class. 
</servlet> 

<servlet-mapping> 
    <servlet-name>HelloWorldServlet</servlet-name><--here must be match <servlet-name> 
    <url-pattern>HelloWorldServlet</url-pattern> 
</servlet-mapping> 
+1

explicación mínima sobre el código de ur bueno para tener. –

2

Se ha perdido Servlet jar en su classpath.add el mismo jar en su classpath.

Si está utilizando Eclipse, haga clic derecho en el proyecto.

-->Properties --->Java build path --->select Libraries 

agregar tarro allí.

+0

yup pero cómo agregar? – Ben

+0

¿Cómo está construyendo su aplicación, usando cualquier editor como eclipse? –

+1

no, yo uso ÍntelliJ pero ya lo tengo funcionando. Ni siquiera sé cómo ser sincero. Probé varias cosas y de repente funcionó. – Ben

0

La primera vez que usé IntelliJ IDEA tengo el mismo problema, pero creo que el principio debería ser el de Eclipse, simplemente configure nuestro archivo jar necesario en la biblioteca externa.

Vaya a "Archivo" ----> "estructura del proyecto" ----> "Biblioteca", luego haga clic en el botón y agregue el jar necesario.

No se puede encontrar el Servlet parece que perdió el archivo server-api.jar, simplemente colóquelo en su biblioteca. Y si quiere construir un proyecto j2ee, simple ese archivo no tendrá sentido.

Así que simplemente coloque todo el archivo jar tomcat/lib local en su proyecto y la función es la misma que eclipse (configure la ruta de compilación -> servidor de ejecución ...).

Cuestiones relacionadas