2012-02-28 24 views
8

Mam to duże pytanie dla początkujących. Kiedy próbuję następujących; "serwlet" zmienia kolor na czerwony i wskazuje na "serwlet nie może rozwiązać symbolu".nie może rozwiązać symbolu "serwlet"

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

Mam apache tomcat uruchomiony. Jestem bardzo dużą nowicjuszką java. Czy ktoś może mi pomóc, gdzie znaleźć bibliotekę serwletów? Przeszukałem go, ale nie otrzymałem jasnego wyjaśnienia, jak to zrobić.

To jest treść mojego pliku 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: używam IDE IntelliJ IDEA. Używam Mavena.

Odpowiedz

12

Słoik serwletów musi znajdować się na ścieżce budowania.

Jeśli używasz Maven można to zrobić:

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

lub użyć jednego z dostawców wymienionych here, taki jak poniżej, który nie jest zależny od konkretnego pojemnika:

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

Wygląda na to, że brakuje wpisu ścieżki klasy dla pliku servlet.jar. Nie powiedziałeś nam, jak to budujesz, ale w zasadzie musisz skompilować przeciwko servlet.jar. Nie powinno być konieczne jawne umieszczanie go w dowolnym miejscu dla czasu, aby Tomcat zajął się tym.

+0

@BWestra: Jeśli jesteś w 100% nowy w Javie, proponuję rozpocząć od prostszych programów zamiast serwletów. Poznaj podstawy dzięki prostym aplikacjom konsolowym. Dodanie biblioteki do ścieżki klasowej zależy od tego, jak się rozwijasz - nie powiedziałeś nam nic o tym, czy używasz IDE, kompilując z wiersza poleceń, używając Anta, Mavena, cokolwiek. –

+0

@BWestra: Cóż, jeśli pracujesz z Maven, powinieneś wiedzieć, jak pracować z zależnościami w ogólności - i potrzebujesz w zasadzie zależności od serwletów.Nie używam Mavena, ale odpowiedź NimChimpsky wygląda tak, jakby była na właściwej linii. Sugerowałbym próbę użycia zależności, która * nie jest * specyficzna dla 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

Minimalne objaśnienie o dobrym kodzie źródłowym. –

2

Brakuje Servlet jar w pliku classpath.add tego samego słoika w ścieżce klas.

Jeśli używasz środowiska Eclipse, kliknij projekt prawym przyciskiem myszy.

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

dodać słoik tam.

+0

tak, ale jak dodać? – Ben

+0

jak budować swoją aplikację, używając dowolnego edytora, takiego jak Eclipse? –

+1

nie używam ÍntelliJ ale już to działa Nie wiem nawet, jak być szczerym próbowałem kilku rzeczy i nagle zadziałało. – Ben

0

Po raz pierwszy użyto IntelliJ IDEA Mam ten sam problem, ale myślę, że zasada powinna być taka jak Eclipse, wystarczy skonfigurować nasz potrzebny plik JAR do zewnętrznej biblioteki.

Przejdź do "Plik" ----> "struktura projektu" ----> "Biblioteka", następnie kliknij przycisk i dodaj potrzebny słoik.

Nie można znaleźć Servlet wygląda na to, że zgubiłeś plik server-api.jar, po prostu umieść go w swojej bibliotece. A jeśli chcesz zbudować projekt j2ee, to prosty plik nie ma sensu.

Po prostu umieść cały lokalny plik tomcat/lib jar w twoim projekcie, a funkcja jest taka sama jak eclipse (skonfiguruj ścieżkę kompilacji -> serwer wykonawczy ...).

Powiązane problemy