Domanda Come posso importare l'API javax.servlet nel mio progetto Eclipse?


Voglio sviluppare con Servlet in Eclipse, ma dice che il pacchetto javax.servlet non può essere risolto. Come posso aggiungere javax.servlet pacchetto per il mio progetto Eclipse?


281
2017-11-02 10:04


origine


risposte:


Assicurati di avere il giusto Eclipse e Server

Assicurati di averlo usato almeno Eclipse IDE per Java EE sviluppatori (con il EE). Contiene strumenti di sviluppo per creare progetti web dinamici e integrare facilmente servlet container (questi strumenti fanno parte di Web Tools Platform, WTP). Nel caso in cui avessi già IDE Eclipse per Java (senza EE) e installato manualmente alcuni plugin relativi a EE, è probabile che non sia stato eseguito correttamente. Faresti meglio a distruggerlo e prendere il vero IDE Eclipse per Java EE.

È inoltre necessario assicurarsi di avere già un servlettaintainer installato sulla macchina che implementa almeno la stessa versione dell'API Servlet del contenitore servlet nell'ambiente di produzione, ad esempio Apache Tomcat, Oracle GlassFish, JBoss AS/Volo selvaggio, ecc. Di solito, basta scaricare il file ZIP ed estrarlo è sufficiente. In caso di Tomcat, fallo non scarica il formato EXE, ovvero solo per ambienti di produzione basati su Windows. Vedi anche a.o. Diverse porte (8005, 8080, 8009) richieste da Tomcat Server su localhost sono già in uso.

Un servlettaintainer è un'implementazione concreta dell'API Servlet. Si noti che il Java EE SDK il download su Oracle.com contiene fondamentalmente GlassFish. Quindi, se hai già scaricato Java EE SDK, in pratica hai già GlassFish. Si noti inoltre che ad esempio GlassFish e JBoss AS / WildFly lo sono Di Più oltre a un servlettaintainer, supportano anche JSF, EJB, JPA e tutte le altre fanciness Java EE. Vedi anche a.o. Che cosa è esattamente Java EE?


Integrare Server in Eclipse e associarlo a Project

Dopo aver installato Eclipse per Java EE e un servlet container sul computer, effettuare le seguenti operazioni in Eclipse:

  1. Integra servlettaintainer in Eclipse

    un. Vista server

    • Apri il server visualizza nella casella in basso.
    • Fai clic qui e scegli Nuovo> Server.
    • Scegli la marca e la versione del servlet appropriato e cammina attraverso la procedura guidata.

      enter image description here

    b. Oppure, tramite le preferenze di Eclipse

    • Aperto Finestra> Preferenze> Server> Ambienti di runtime.
    • Puoi Inserisci, modificare e Rimuovere server qui.

      enter image description here

  2. Associa server con progetto

    un. Nel nuovo progetto

    • Apri il Project Navigator / Explorer sul lato sinistro.
    • Fai clic qui e scegli Nuovo> Progetto e poi nel menu Web> Progetto Web dinamico.
    • Nella procedura guidata, imposta il Target Runtime al server integrato.

      enter image description here

    b. O, nel progetto esistente

    • Fai clic destro sul progetto e scegli Proprietà.
    • In Runtimes mirati sezione, selezionare il server integrato.

      enter image description here

    In entrambi i casi, Eclipse prenderà automaticamente le librerie del servlettainer nel percorso di generazione. In questo modo sarai in grado di importare e utilizzare l'API Servlet.


Non portare mai con sé file JAR specifici del server

In ogni caso non dovresti avere il bisogno di giocherellare nel Costruisci percorso proprietà del progetto. Dovresti soprattutto mai copia / scarica / sposta / includi manualmente le singole librerie specifiche del contenitore servlet come servlet-api.jar, jsp-api.jar, el-api.jar, j2ee.jar, javaee.jar, ecc. Porterebbe solo a problemi futuri di portabilità, compatibilità, classpath e manutenibilità, perché la tua webapp non funzionerebbe quando è distribuita su un servlettainer di una marca / versione diversa da quella da cui queste librerie sono originariamente ottenute.

Nel caso in cui tu stia utilizzando Maven, devi essere assolutamente sicuro che le librerie specifiche di servlettainer che sono già fornite dal runtime di destinazione siano contrassegnate come <scope>provided</scope>.

Ecco alcune eccezioni tipiche che puoi ottenere quando rifiuti la /WEB-INF/lib o anche /JRE/lib, /JRE/lib/ext, ecc. con librerie specifiche di servlet con un tentativo incauto di correggere gli errori di compilazione:


377
2017-11-02 10:17



import javax.servlet

PASSO 1

Vai a proprietà del tuo progetto (con alt+accedere o fare clic con il tasto destro del mouse)

PASSO 2

controllare Apache Tomcat v7.0 sotto Runtime mirato e funziona


210
2018-02-15 02:35



Poca differenza da Hari:

Fare clic con il tasto destro del mouse su progetto ---> Proprietà ---> Percorso build Java ---> Aggiungi libreria ... ---> Runtime server ---> Apache Tomcat ----> Fine.


73
2018-06-08 17:30



Includi servlet-api.jar dalla cartella lib del server.enter image description here

Fai questo passo

enter image description here


11
2017-09-18 05:37



Correzione rapida - Funzionava in Eclipse - Fare clic con il tasto destro del mouse su progetto -> Proprietà -> Percorso build Java (scheda) -> Aggiungi JAR esterni -> individuare l'implementazione del vaso API servlet (se Tomcat - il suo nome servlet-api.jar) -> fare clic su OK. Questo è tutto !!


10
2018-04-12 06:52



Aggiungi la dipendenza javax.servlet in pom.xml. Il tuo problema sarà risolto.

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

5
2018-06-18 09:59



puoi semplicemente copiare il servlet-api.jar e copia i file jar nella cartella lib, che si trova in WEB-INF. quindi basta pulire e costruire il tuo progetto, i tuoi errori saranno risolti.

  **OR**

puoi aggiungere direttamente i file jar alla libreria usando i seguenti passaggi.

  1. Fai clic destro sul progetto.
  2. Vai alle proprietà.
  3. Vai a Percorso di costruzione Java.
  4. Seleziona Aggiungi l'opzione Libreria dalle schede.
  5. Aggiungi file Jar
  6. dai il tuo percorso servlet-api.jar file.
  7. Pulisci e costruisci il tuo progetto.

4
2018-02-08 04:57



So che questo è un vecchio post. Tuttavia, ho osservato un'altra istanza in cui nel progetto è già stato aggiunto Tomcat, ma otteniamo comunque questo errore. Questo ha risolto questo:
alt + accedere
Sfaccettature del progetto
A destra, accanto ai dettagli, c'è un'altra scheda "Runtimes". Il server tomcat installato verrà elencato qui. Selezionalo
Salva la configurazione e FATTO!

Spero che questo aiuti qualcuno.


4
2017-08-19 16:20



A partire dal wikipedia.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                "Transitional//EN\">\n" +
                "<html>\n" +
                "<head><title>Hello WWW</title></head>\n" +
                "<body>\n" +
                "<h1>Hello WWW</h1>\n" +
                "</body></html>");
  }
}

Questo, ovviamente, funziona solo se hai aggiunto il servlet-api.jar al percorso di costruzione di Eclipse. Tipicamente il server delle applicazioni (ad es micio) avrà il file jar giusto.


2
2017-11-02 10:05



Stavo ricevendo un'eccezione di puntatore nullo durante la creazione del progetto relativa a "Dynamic Web Module".

Per ottenere il progetto da compilare (ovvero, per javax.servlet per importare con successo) dovevo andare al progetto Proprietà, scegli Sfaccettature del progetto nella barra laterale, spunta Modulo Web dinamico e fare clic Applicare.

Sorprendentemente, questa volta il facet "Dynamic Web Module" è stato installato correttamente e l'importazione ha iniziato a funzionare.


1
2018-04-09 15:41