# Webview für Anwendung



## bennemann8 (4. Sep 2016)

Hallo,
meine ich würde gerne meiner Anwendung ein Oberfläche hinzufügen, die Daten aus einer lokalen SQLite DB ausliest und im Browser anzeigt.
Das Ganze soll passieren, wenn der Benutzer in der Anwendung auf einen entsprechenden Button klickt.
Es sollte sich dann ein Browserfenster öffnen (http://localhost:{PORT}/schocken/id=4, oder so ähnlich). Momentan habe ich eine PHP basierte Lösung, muss dafür allerdings einen lokalen Webserver wie Apache oder ähnliches installiert haben, was bei einigen Usern nicht der Fall sein wir. Deshalb würde ich das gerne "in die Anwendung" einbinden. Das Ganze wird dann ansprechend per CSS und Javascript formatiert. PHP scheint mir irgendwie nicht passend zu sein, wenn ich das richtig sehe.
Wie würdet ihr das machen? Falls das irgendwas zur Sache beiträgt, mein Programm ist in JavaFX8 geschrieben.


----------



## Thallius (4. Sep 2016)

Ehrlich gesagt verstehe ich das jetzt nicht ganz. Wieso steht in einer SQLite DB eine Webseite? Hast Du da den HTML Code in eine Spalte geklatsch oder was? Wozu brauchst du den Browser? Wieso kann Deine Anwwendung den Inhalt der SQLite DB nicht selber in einem Frame anzeigen?


----------



## bennemann8 (4. Sep 2016)

dann hab ich das wohl etwas falsch ausgedrückt.
Die Anwendung ist eine Turnierverwaltung, die lediglich die jeweilige Turnierleitung benutzt.
Die Turnierverwaltung kann bestimmte Einstellungen vornehmen, wie z.B. dass aus einer Teamwertung nur alle Plätze ab dem 4. Platz sichtbar sind.
Die Weboberfläche soll den Teilnehmern des Turniers dienen. Die sollen dann über das lokale WLAN Netz auf die Oberfläche zugreifen können und somit die Informationen einsehen können, die die Turnierleitung freigegeben hat.
In meiner DB sind nur seine Turnierdaten, kein HTML Code oder sonstiges. Aber diese Daten sollen in der Oberfläche aufbereitet und ausgegeben werden.


----------



## Thallius (4. Sep 2016)

Also willst du einen Webserver in Deine Anwendung integrieren.


----------



## bennemann8 (4. Sep 2016)

genau


----------



## Thallius (4. Sep 2016)

Na dann such dir einen aus

https://blog.idrsolutions.com/2015/04/top-10-open-source-java-and-javaee-application-servers/


----------



## bennemann8 (4. Sep 2016)

Nagut, das sieht ja schonmal gut aus, aber wie bekomme ich z.B. den Apache Tomcat in mein Project integriert, damit ich auch damit arbeiten kann? Mit der Dokumentation kann ich irgendwie nicht so viel anfangen.
*Edit*: Ich habe jetzt die tomcat-embedded-core.jar in mein Projekt eingebunden. Wie starte ich das Ganze jetzt, damit ich z.B. eine ganz einfache html Seite augegeben bekomme?


----------



## tommysenf (5. Sep 2016)

```
import javax.servlet.ServletException;

import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.Context;
import java.io.File;
import java.net.MalformedURLException;

public class Main {

    public static void main(String[] args) throws Exception, LifecycleException {
        new Main().start();
    }

    public void start() throws ServletException, LifecycleException,
            MalformedURLException {

        // Define a folder to hold web application contents.
        String webappDirLocation = "WebContent/";
        Tomcat tomcat = new Tomcat();

        // Bind the port to Tomcat server
        tomcat.setPort(8080);

        // Define a web application context.
        Context context = tomcat.addWebapp("/tomcatembedded", new File(
                webappDirLocation).getAbsolutePath());

        // Define and bind web.xml file location.
        File configFile = new File(webappDirLocation + "WEB-INF/web.xml");
        context.setConfigFile(configFile.toURI().toURL());

        tomcat.start();
        tomcat.getServer().await();
    }

}
```

Wobei ich als embedded server immer jetty genutzt habe...


----------

