Spring Boot statt JavaEE

Bitte aktiviere JavaScript!
Warum wird in dem Beispiel Jersey genutzt? Spring boot hat doch eigenes Framework für REST oder? Hat das was zu sagen oder hab ich was falsch verstanden?
Spring Boot ist im Grunde genommen eine "opinionated" Zusammenstellung von third-party Libraries zu einem funktionierenden Ganzen: Jersey als JAX-RS Implementierung, Tomcat (oder Jetty) als Servlet Container, Hibernate als JPA Implementierung, Jackson fürs JSON Marshalling, etc... und natürlich Spring Framework als DI-Container und Spring Web MVC mit seinen eigenen Annotationen und Konfigurationen, das sich den darunterliegenden Libraries (Tomcat, Jersey und Jackson) bedient und diese konfiguriert.
 
Ok, vielen Dank! Wenn ich das Projekt aus dem Link mit Eclipse starte, kommt schon mal ne Antwort von der Api (zwar nicht was ich sehen will, aber immer hin)

Wenn ich das Ganze per Terminal starten will kommt

kein Hauptmanifestattribut, in database-service.jar

und es startet nichts, hast du ne Idee woran das liegen kann?
 
Wenn ich das Ganze per Terminal starten will kommt
kein Hauptmanifestattribut, in database-service.jar
und es startet nichts, hast du ne Idee woran das liegen kann?
Wenn du das Projekt mit Maven baust (z.B. mit `mvn clean package`), dann entsteht standardmäßig kein "executable Jar". Spring Boot bietet hierfür aber ein Plugin an, was alle Dependencies hinzufügt und ein executable jar baut.
Siehe hierzu: https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html#build-tool-plugins-maven-plugin
 
Das hab ich drin.

Code:
<build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.2.RELEASE</version>
            </plugin>
        </plugins>
        <finalName>database-service</finalName>
    </build>
 
beim bauen kommt noch folgende Meldung
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 17, column 12

obwohl das drin ist
 
Angenommen ich habe 100 Datenbanken, wie zum Geier Update ich die Alle, wenn es neue Tabellen oder so gibt?! Gibts da eine Automatik? Oder schreibt man sich da selber einen "Updater" der die Änderungsscripte ausführt?
Sowas würde man sowieso automatisieren, zB mit Liquibase, ob man dann eine oder 100 ändert, macht keinen wirklichen Unterschied mehr.
Warum wird in dem Beispiel Jersey genutzt? Spring boot hat doch eigenes Framework für REST oder? Hat das was zu sagen oder hab ich was falsch verstanden?
Jersey ist da egal, geht genauso mit allem anderem (bis auf in dem Beispiel das Filter registrieren, dazu gibt es aber zig Beispiele)
 
Vielen dank, scheint du hast voll Plan :) gibt es noch ne alternative zu der db thematik? Könnte ich nicht eine tabelle erstellen in der die zugangsdaten zu den kundendatenbanken sind, wenn dann die view was aus der db braucht, gibt sie bei der rest anfrage den nutzer mit an. Dann schaut der datenbankservice nach, aus welcher datenbank etwas geholt werden soll. Nur mal so als alternative. Oder könnte man für jeden kunden einen eigenen server/service aufstarten der auf einer eigenen domain läuft, sodass der kunde das gefühl hat er logged sich nicht auf einem portal ein sondern hat ein eigenes programm? Mit diesem tenant ist mir irgendwie nicht geheuer
 
Könnte ich nicht eine tabelle erstellen in der die zugangsdaten zu den kundendatenbanken sind, wenn dann die view was aus der db braucht, gibt sie bei der rest anfrage den nutzer mit an. Dann schaut der datenbankservice nach, aus welcher datenbank etwas geholt werden soll. Nur mal so als alternative.
Das wäre im wesentlichen das gleiche wie jetzt - wo die genutzte Datenbank her kommt, ist im wesentlichen egal.
Oder könnte man für jeden kunden einen eigenen server/service aufstarten der auf einer eigenen domain läuft, sodass der kunde das gefühl hat er logged sich nicht auf einem portal ein sondern hat ein eigenes programm?
Das wäre auch Problemlos möglich - grad in Verbindung mit Zuul dürfte das recht leicht umzusetzen sein.

Mit diesem tenant ist mir irgendwie nicht geheuer
Warum nicht? ;)
 
Hmm ich baue lieber immer gern selber was.

Ich würde jetzt zb in meiner view einen rest client einbauen, der sagen wir preise aus der datenbank holen soll. Als uri würde er dann /kundennummer/artikelnummer in der uri übergeben. Der empfangende server würde dann die kundennummer nehmen, aus der kundenDB die zugangsdaten für die kundendatenbank holen und damit eine verbindung aufbauen um die preise zu holen?

Zuul hab ich auch im Einsatz, das wäre ja echt cool! Aber wie starte ich einen service speziell für eine Kunden? Über die args wäre eine Möglichkeit oder?
 
Ich würde jetzt zb in meiner view einen rest client einbauen, der sagen wir preise aus der datenbank holen soll. Als uri würde er dann /kundennummer/artikelnummer in der uri übergeben. Der empfangende server würde dann die kundennummer nehmen, aus der kundenDB die zugangsdaten für die kundendatenbank holen und damit eine verbindung aufbauen um die preise zu holen?
Ginge schon, aber der Weg über zwei Datenbanken dürfte komplizierter sein, als der über eine.

Zuul hab ich auch im Einsatz, das wäre ja echt cool! Aber wie starte ich einen service speziell für eine Kunden? Über die args wäre eine Möglichkeit oder?
z.B, kommt aber auch drauf an, wie die sich unterscheiden.
Müssen sich dann nur mit entsprechender Kennung beim Eureka-Server registrieren und Zuul leitet das dann an den jeweils passenden Server weiter.
 
Wenn man da tenant macht ist es doch aber auch so oder? Da werden doch die Zugangsdaten für die Kundendaten auch in einer db gespeichert oder irre ich mich und die werden in einer properties gespeichert? Denn zur Laufzeit kommen neue kunden dazu, sodass neue db zugangsdaten abgelegt werden müssen. Was ja im propertiesfile nicht wirklich automatisch möglich wäre
 
Ja, wenn die Daten natürlich aus einer DB kommen müssen, müssen sie aus einer DB kommen ;)

Allerdings bietet Spring Cloud auch Lösungen zum Laden und Aktualisieren von Properties über andere Server.
 
Hab grad noch ne Frage. Angenommen ich will in einem Service ein Pojo "User" erstellen, welches ich auch in einem anderen Service brauche. Kann mann dann nicht einen Provider-Service erstellen aus dem man die Pojos nimmt? Sonst müsste ich ja bei jeder Pojo-Änderung in jedem Service alles ändern.
 
Zb ein Service gibt als json ein User Objekt zurück. Dieses Objekt wird von einem anderen Service gelesen und auch wieder in ein Objekt "User" gemapped
 
Genau und wie mach ich das? einen eigenen "Service" Dafür bereit stellen, welchen in in den anderen Services überlesen Dependency verwende?

Edit:
Oder so:

Habe einen datbase-service, der mir die User aus der DB holt und per REST bereitstellt. Der Service "Frontend", fragt bei "Database" den User ab, ob er existiert (Login zb)

Könnte ich auch aus der Entity, im Frontendservices ein neues Objekt erzeugen und damit arbeiten? (Müsste dann auch hier, den database-service in den frontend-service via pom bringen
 
Passende Stellenanzeigen aus deiner Region:

Oben