Spring Boot statt JavaEE

Hallo zusammen,
ich möchte mein Programm umbauen und es zu Microservices mit Spring boot aufbauen. Nun habe ich eine Verständnisfrage: Wenn ich eine View aufbaue, kommuniziert diese dann auch über REST mit den Services?

Möchte nämlich JSF Primefaces nutzen als View, da ich mir da ein Template gekauft habe. Wenn es etwas einfacheres als JSF im Zusammenhang auch gut, dann freue ich mich über Tipps
 
Üblicherweise kommuniziert auch die per Rest mit den anderen Services.

Du kannst da durchaus auch JSF nutzen, häufig nutzt man aber was Client-basiertes.
 
Vaadin zb? JSF hab ich jetzt relativ gut drauf. müsste da wieder von 0 anfangen. das will ich eigentlich vermeiden, es sei denn es ist super einfach :p weiß da grad nicht, wo ich ansetzen soll. Mein erster Service wäre jetzt die View, in welcher Produkte angelegt werden können, die an einen service gehen, der es ihn die DB speichert
 
In der Wahl des Frameworks ist man da nicht eingeschränkt, das ist doch das schöne an dem Ansatz ;)
Vaadin ist möglich, oder React, Vue, Angular, ...
 
Hab null Ahnung von Javascript, will ich auch ehrlich nicht.

Vaadin erinnert mich an Swing, also alles rein in Java -> find ich gut. Aber da muss man so viel CSS machen damit es hübsch ist. In einem anderen Forum habe ich gelesen, dass es ein fix und fertig Theme gibt. Hab es nur noch nicht gefunden, aber das wäre ja gut, wenn es da schon was fertiges geben würde, wo man nur noch die Menüs usw anpassen muss :D Muss funktionieren, schön sein ist unwichtig :D
 
Hab ich auch schon geschaut erst, aber das geht nicht so out of the box. Primefaces React würde gehen oder aber ist das nicht auch JavaScript?
 
jsf und spring boot muss erst irgendwas umkonfiguriert werden, beim 2. versuch ging es immer noch nicht, das ist mir dann zu nervraubend noch weiter rumzubasteln
 
aber dann muss ich das frontend auf nem Aappserver laufen lassen oder? Das Frontend kommuniziert dann über Rest mit den Services?
 
Die Services sollten sowieso per Rest (oder vergleichbarer abstrakter Schnittstelle kommunizieren).

Aber ja, das Frontend müsste dann in einem App-Server laufen. Mit Docker ist das aber nicht mehr Aufwand, als Spring Boot mit embedded Server.
 
Ok, wäre ne Lösung. Danke.

Hast du ne Idee, warum mein Service nicht startet?! Im Eclipse gehts, außerhalb eclipse nicht.
Code:
ERROR org.springframework.boot.SpringApplication - Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
       at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:155)
       at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544)
       at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
       at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
       at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243)
Caused by: org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
 
Irgendwas wird falsch konfiguriert sein...ich könnte jetzt raten, aber das wird wenig hilfreich sein.

Hast du eines der Beispiele als Grundlage genommen?
 
Ja ist ein Beispiel. wie gesagt in Eclipse läuft es. Ich vermute, dass da was nicht gepackt wird oder so?! Vielleicht exportiere ich das auch falsch. Ich klicke auf Export > Runnable Jar und auf dem Server java -jar Blabla.jar

hier meine POM, vielleicht hast du nen Plan

Code:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.BUILD-SNAPSHOT</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
  
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
      
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>
 
Oh guter Tipp, danke! Lokal Ging es schon mal außerhalb Eclipse, nun lad ich es mal auf den Server... da gleich noch ne Frage, jeder Microservice ist 30 MB groß. Die ganzen Libarys kann man doch sicher irgendwo einmal bereitstellen und nicht für jeden Service doppelt und dreifach oder?
 
naja, wenn man geteilte Libraries nutzt, binden man die Services wieder aneinander und verliert damit wieder einen der Vorteile
 
ah ok, ja das stimmt natürlich. Also nur die nötigen Libs rein um Speicher zu sparen.
Mit dem Mavenbuilt hat geklappt! Vielen vielen Dank. Wäre ich in 10 Jahren noch nicht drauf gekommen.

Hast du noch einen Tipp, wie man die Services deployed? Ich würde die jetzt einfach (wie soeben) alle auf den Server in einen Ordner packen (fachlich sortiert) und vielleicht noch mit init.d startbar machen.

Jetzt habe ich den service mit java -jar service.jar gestartet. Nach dem Schließen des SSH Fensters, ist der Service down. Wir macht mans richtig?o_O
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben