InfluxDB Client, fehlende Referenz

Fohnbit

Top Contributor
Hallo!

Ich möchte den InfluxDB Client nutzen, um Daten in eine Influx Datenbank zu schreiben:

Meine Upload Klasse sieht so aus:
Java:
public class Upload implements Runnable {
    private InfluxDBClient client = null;

    private String bucket;

    private String org;

    private List<Point> points;

    private List<Point> pointsOriginal;

    private Logger logger = (Logger) LoggerFactory.getLogger(getClass());

    private List<Point> uploadPayload = new ArrayList<>();

    public Upload(InfluxDBClient client, String bucket, String org, List<Point> pointsOriginal, List<Point> points) {
        this.bucket = bucket;
        this.org = org;
        this.client = client;
        this.points = points;
        this.pointsOriginal = pointsOriginal;
        this.logger.setLevel(Level.INFO);
    }

    public void run() {
        try {
            logger.debug("create InfluxDB Data: " + points.toString());
            ListIterator<Point> pointIterator = points.listIterator();
            while (pointIterator.hasNext()) {
                uploadPayload = new ArrayList<>();
                for (int i = 0; i < 10000; i++) {
                    if (pointIterator.hasNext()) {
                        this.uploadPayload.add(pointIterator.next());
                        pointIterator.remove();
                    }
                }
                WriteApiBlocking writeApi = client.getWriteApiBlocking();
                logger.debug("upload InfluxDB Data");
                writeApi.writePoints(bucket, org, uploadPayload);
                logger.debug("upload InfluxDB Data: " + uploadPayload.size() + " elements DONE");
            }
        } catch (Exception e) {
            logger.error(e.getLocalizedMessage());
            pointsOriginal.addAll(uploadPayload);
            pointsOriginal.addAll(points);
        }
    }
}

Bei der Zeile:
writeApi.writePoints(bucket, org, uploadPayload);
erhalte ich in Eclipse den Fehler:
The type com.influxdb.exceptions.InfluxException cannot be resolved. It is indirectly referenced from required type com.influxdb.client.WriteApiBlocking

Es fehlt wohl die "com.influxdb.exceptions.InfluxException". Ich habe als Client die Version 7.1.0 von Maven geladen:

Da sehe ich aber keine entsprechendes .jar File

Kennt sich da jemand mit InfluxDB aus?

Danke!
 
Als Ergänzung. Entweder du legst das Projekt als Maven Projekt an und importierst es in Eclipse als Maven Projekt. Dann kannst du die Dependency eintragen und per Maven bauen (sollte Eclipse dann auch automatisch machen, ansonsten Alt+F5 auf dem Projekt). Dann werden über Maven auch alle transitiven Depedencys geladen.

Alternativ, wenn du das Jar File geladen hast, das allein reicht nicht. Du musst, wie von mihe7 beschrieben, nicht nur das Jar des Clients laden, sondern auch alle Jars, die unter Compile Dependencys gelistet sind. Und bei denen dann auch wieder alle, die unter Compile Dependencys gelistet sind usw. bist du alle hast. Da werden einige (vermutlich > 20) Jars zusammen kommen, die du laden musst. Daher die klare Empfehlung - es als Maven Projekt anzulegen.
 
Sauber wäre es OSGI mit Maven zu verheiraten - das muss grundsätzlich auch gehen, aber da habe ich keine Ahnung mehr von.

Ansonsten evtl. ein kleines rein Maven Projekt aufsetzen und da die Dependency eintragen und per Maven ein Fat-Jar bauen und dass dann wiederum in eigentliches Projekt einbetten
 
Sauber wäre es OSGI mit Maven zu verheiraten - das muss grundsätzlich auch gehen, aber da habe ich keine Ahnung mehr von.

Ansonsten evtl. ein kleines rein Maven Projekt aufsetzen und da die Dependency eintragen und per Maven ein Fat-Jar bauen und dass dann wiederum in eigentliches Projekt einbetten
Da war ich schon einmal dran. Werde das nun aber nochmal probieren.

Wenn ich von GitHub ein Projekt in Eclipse einfüge, sind da ja alle Anhängigkeiten drinnen. Dann könnte ich das .jar erstellen?
 

Zurück
Oben