# Libraries Maven Projekt hinzufügen



## Encera (10. Jul 2022)

Hallo zusammen,
ich bin was das Thema WebApis, Maven usw anbelangt leider komplett neu und dementsprechend gerade etwas sehr überfordert. Ich beschäftige mich gerade mit den Grundlagen der Blockchain programmierung und laut meinem Buch soll ich nun das "Jersey Container Servlet" und den "Tomcat Embed core" meinem Maven Projekt hinzufügen. Ich hab beide Libraries bereits heruntergeladen aber habe leider keine Ahnung wie ich die nun dem Projekt hinzufügen soll (Benutze Eclipse btw.). Ich hab mit bereits mehrere Youtube Videos dazu angesehen aber ohne Erfolg. Kann mir von euch jemand weiterhelfen oder kennt ein ein einfaches Tutorial dazu?
PS: Mein Projekt ist aktuell noch ein einfaches JavaProjekt aber hab schon gesehen das sich das in Eclipse scheinbar mit ein paar Klicks konfigurieren lässt.

Beste Grüße und vielen Dank im vorraus~


----------



## yfons123 (10. Jul 2022)

> Maven Repository: Search/Browse/Explore
> 
> 
> 
> ...


wenn du maven benutzt dann brauchst du diese seite

in der suche gibst du das ein was du brauchst und klickst auf das was du brauchst

dann wird dir ein xml zeug angeboten, das kopierst du dir in den dependencies teil deiner pom rein dann holt sich das eclipse von selber


----------



## KonradN (10. Jul 2022)

Wenn Du Maven nutzt, dann lädst Du Abhängigkeiten nicht selbst herunter. Darum kümmert sich Maven selbst.

In der Regel ist dann auf Seiten auch immer die Abhängigkeit mit angegeben, die eingetragen werden soll. Also bezüglich Jersey Container Servlet könnte das etwas sein wie:

```
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-core</artifactId>
    <version>3.0.5</version>
</dependency>
```

In dem Maven pom.xml solltest Du bereits ein XML Element `<dependencies>` finden. In dieses Element gehört dies dann rein kopiert.

Sollte es dies noch nicht geben, dann kannst Du dies selbst anlegen. Innerhalb des Projektes musst Du dann einfach hinein kopieren:

```
<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>3.0.5</version>
    </dependency>
</dependencies>
```

Die Webseite, die @yfons123 ist übrigens eine Übersicht über Pakete, die in den Repositories so enthalten sind und da kann man sehr schön z.B. nach der aktuellen Version schauen oder so. Aber man braucht dazu schon ein paar Informationen wie die artefact-id oder zumindest die groupid. Sollte das nicht gegeben sein, so würde ich eher beim Hersteller / Anbieter schauen.


----------



## Encera (10. Jul 2022)

Vielen Dank für die Antworten, hab das mal so gemacht (bisher nur fürs Jersey Container Servlet). Ist das mehr oder weniger egal an welcher Stelle genau ich das hineinkopiere? Und gibt es eine Möglichkeit gleich zu checken ob das ganze geklappt hat?

lg.~

PS: Unten nochmal ein Screenshot damit ihr sehen könnt wie bzw wo ich das ganze hineinkopiert habe


----------



## yfons123 (10. Jul 2022)

also die reihenfolge in dem dependencies block ist meines wissens nach egal ( kann aber gerne eines besseren belehrt werden )

deine IDE sollte dir etwas rot unterringeln falls was nicht passt
falls du eclipse hast: in dem project tab sollte irgendwo "maven dependencies" stehen, das kannst du aufklappen und nachschauen ob dein paket drin ist
in intellij weis ich es nicht

aufjedenfall wenn du den build path öffnest bei den libraries sollte dein paket irgendwo hinzugefügt sein aber nicht von dir, das macht maven und deine IDE zusammen schon, das ist nur zum überprüfen


----------



## Encera (10. Jul 2022)

yfons123 hat gesagt.:


> also die reihenfolge in dem dependencies block ist meines wissens nach egal ( kann aber gerne eines besseren belehrt werden )
> 
> deine IDE sollte dir etwas rot unterringeln falls was nicht passt
> falls du eclipse hast: in dem project tab sollte irgendwo "maven dependencies" stehen, das kannst du aufklappen und nachschauen ob dein paket drin ist
> ...


Sieht gut aus, ich denke eclipse hat das so übernommen,
danke euch


----------



## M.L. (11. Jul 2022)

Encera hat gesagt.:


> WebApis


Hier könnten die Beitragsreihen (inkl. Comics) des Twitterkontos @RapidAPI ( https://twitter.com/Rapid_API ) weiterhelfen, z.B. was eine API überhaupt ist ( 



__ https://twitter.com/i/web/status/1543252234703872000 ), was ist (z.B.) der Unterschied zwischen Rest und GraphQL, API-Security, Endpoints,...


----------



## Encera (12. Jul 2022)

Hallo zusammen, hab das Kapitel im Buch soweit fertig gemacht und wollte nun den Server starten nur leider bekomme ich anstatt eines funktionierenden Projekts lauter Fehler geschmissen, also alles wie immer eigentlich 
Ich hab den ganzen Nachmittag schon mit Fehlermeldungen googeln verbracht nur leider kein Erfolg.
Konkret gesagt bekomme ich folgende Errors:
-java.lang.IllegalStateException: InjectionManagerFactory not found
-java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
Ich füge anbei auch ein paar Screenshots hinzu.
Laut google wird der erste Fehler hervorgerufen weil jersey ab Version 2.26 nichtmehr abwärtskompatibel ist
(https://stackoverflow.com/questions...orking-with-injectionmanagerfactory-not-found)
Der in dem Beitrag angegebene Fix funktionierte bei mir nicht, im gegenteil ich bekam viel mehr Fehlermeldungen beim starten.
Meine Dependencies sind die folgenden:
 <dependencies>
  <dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.27</version>
</dependency>

  <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>9.0.13</version>
</dependency>
  </dependencies>

Meine Java Version ist Java 11 falls das weiterhelfen könnte. 
Villeicht hat wer ne Idee...


----------



## Encera (12. Jul 2022)

Update: Nachdem ich die Jersey Version auf 2.26 gesetzt und den fix aus dem oben genannten Link angewandt habe und die Tomcat Server Version auf 8.5.11 reduziert habe bekomme ich keine java.lang.IllegalStateException: InjectionManagerFactory not found Exception mehr. 
Das Problem mit der java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet Exception konnte ich bisher noch nicht lösen.  
Villeicht hat hier wer ne Idee?

lg.~


----------



## Encera (15. Jul 2022)

Problem gelöst. Musste noch eine Tomcat-Jasper Dependency hinzufügen und Jersey Version 2.27 Verwenden


----------

