Javabasiertes Forum

Nebenbei bemerkt kann man jetzt Threads (“Topics”) anlegen und Beiträge (“Replies”) schreiben. Wie gesagt, alles noch sehr primitiv und häßlich.

Wahrscheinlich werde ich erst mal am Rollenkonzept arbeiten, weil sich das quer durch die Anwendung zieht. Als nächstes wäre dann die Nutzerregistrierung dran.

Wie wäre es, wenn der aktuelle Stand immer irgendwo deployed ist? Ich denke, dann würden sich vielleicht mehr Leute damit auseinander setzen.

@Landei
hattest du den Kern (Lieblingswort, = Klassen wie User, Profil mit Einstellungen, Posting, Thread, evtl. PN, DB-Tabellen, DB-Zugriffs-Klassen,
Verarbeitungsprozess eines neues Postings/ einer Registrierung, Attachements usw.,
evtl. tolle allgemeine Steuerungsmechanismen wie Logging, die sich mit der Zeit nebenher ergeben, Plugins?)
von jforum - Powering Communities schon einmal anschaut?
gibt es ja als Quellcode, alles neu angehen?
einfach nur so, auch um nicht Code zu klauen, das ist ja auch wichtig, oder weil konkrete Bedenken?

ich selber bin da immer noch nicht, wenn es hier ganz neu wird dann lohnt es sich ja auch nur maximal zum Vergleich, für Ideen

Ja, das wäre sinnvoll, aber zur Zeit ist es einfach noch zu grauenhaft :slight_smile:

[QUOTE=SlaterB;115351]@Landei
hattest du den Kern (Lieblingswort, = Klassen wie User, Profil mit Einstellungen, Posting, Thread, evtl. PN, DB-Tabellen, DB-Zugriffs-Klassen,
Verarbeitungsprozess eines neues Postings/ einer Registrierung, Attachements usw.,
evtl. tolle allgemeine Steuerungsmechanismen wie Logging, die sich mit der Zeit nebenher ergeben, Plugins?)
von jforum - Powering Communities schon einmal anschaut?
gibt es ja als Quellcode, alles neu angehen?
einfach nur so, auch um nicht Code zu klauen, das ist ja auch wichtig, oder weil konkrete Bedenken?

ich selber bin da immer noch nicht, wenn es hier ganz neu wird dann lohnt es sich ja auch nur maximal zum Vergleich, für Ideen[/QUOTE]

Nein, habe ich nicht. Zum einen ist der Code zu alt, zum anderen ist das Projekt als ziemlich direkter Klon von phpBB angelegt worden, hat also eine völlig andere Ausrichtung als mein Projektchen und ist entsprechend umfangreich.

Grauenhaft ist relativ. Wie weit ist es denn überhaupt? Würde gerne mal probieren.
Sich an phpBB zu orientieren ist doch in Ordnung (die haben jahrelange Erfahrung mit sowas). Das phpBB gibt es auch Java-basierend (oh, hat Slater schon geschrieben).
Naja - wenn du mal ne Testperson brauchst, ich hab noch bisschen Platz auf’m Server.

Das ist doch egal. Ich fänd es toll. So kannst Du schnelles Feedback bekommen. Vielleicht inspiriert es auch den einen oder anderen, dabei zu helfen.

Müsste ich erst mal schauen, wo ich das hosten könnte. Java 8 und PostgreSQL gibt es nicht überall.

Wenn 512MB RAM und 10k SQL rows reichen, dürfte eine Instanz auf Heroku nichts kosten.

Danke für den Tipp!

Habe jetzt mal versucht das Projekt zu bauen und habe dabei ein paar Probleme bekommen.

Höchstwahrscheinlich bin ich einfach zu doof dazu. So wie es aussieht hat es irgendwas mit der Datenbank zu tun.

Postgresql installiert.
Role fjorum, PW fjorum angelegt
Datenbank fjorum angelegt.
Role fjorum als owner von fjorum gesetzt.
Installationsskript ausgeführt.
pgadmin3 zeigt mir auch unter fjorum,Schemata,public,Tabellen die 4 Tabellen an.

mvn clean install

hat Probleme die JUnit tests auszuführen. Also Ignoriere ich erstmal cont/ApiControllerDocTesterTest.java

SUCCESS => Das ganze wird dann erfolgreich gebaut.

SUCCESS => mvn package damit ich ein war bekomme.

Dieses kann ich dann mit einem Jetty starten. (Jetty lass ich mir von maven gleich mitinstallieren)

[SPOILER][XML]
org.apache.maven.plugins
maven-dependency-plugin
2.3


package
copy



org.mortbay.jetty
jetty-runner
7.5.4.v20111024
jetty-runner.jar





[/XML][/SPOILER]

java -jar target/dependency/jetty-runner.jar target/*.war

Das ganze startet auch und unter localhost:8080 erwartet mich auch die Begrüssungsseite.

Aber an sonsten geht nicht viel. Alles was irgendwie auf die DB zu gehen scheint endet mit einem Internal Server error.

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
…hibernateZeug
at org.fjorum.services.UserService.findUser(UserService.java:186) ~[classes/:na]

Irgend etwas stört hier noch gewaltig. Vielleicht bin ich auch nur zu Doof für Postgresql und habe dort irgendwas verbockt.

Vielleicht gibt es ja einen kleinen Hinweis, wie man die DB vernünftig ans laufen bringt.

muss es gleich maven und ein Jetty sein, kann man nicht Teile der Anwendung, die DB-Klassen testen (später der ganze Kern mit Swing-GUI), als einfaches Java-main-Programm starten? → Langzeitziel

ist dir grundsätzlich Postgresql-Installation bekannt, grundsätzlich JPA oder was auch immer darauf hier läuft?
statt einer konkreten Anwendung lohnen sich ja erst einmal Tutorials

wenn das Problem bestehen bleibt, dann für mich guter Anlass, es endlich auch mal anzuschauen und zu versuchen :wink:
ohne zu behaupten dass mehr Erfolg, und frühestens heute Abend

Erst mal vielen Dank, dass du es probiert hast.

PostgreSQL sollte natürlich die neueste Version sein. Ansonsten ist in der persistence.xml nichts spezielles angegeben, die eigentlichen Verbindungsdaten stehen in der application.conf.

Ich blicke bei den PostgreSQL-Rechten ehrlich gesagt noch nicht 100% durch, würde aber vermuten, dass der fjorum-User zwar DB-Owner ist, sich aber trotzdem nicht einloggen darf.

Ist zwar nicht die feine englische, aber ich habe der fjorum-Rolle bei mir erst mal Superuser-Priviligien gegeben, weil ich mich momentan nicht damit rumschlagen wollte.

Kannst du vielleicht mal die DB-Verbindung für den fjorum-User mit der IDE deines Vertrauens oder so testen (pgAdmin nimmt glaube ich standardmäßig den postgresql-User oder so)?

Ich verstehe das Problem gerade nicht. Ich bin auch eher mit MySQL unterwegs. Aber es gibt da doch genauso User. Ich würde einen User für die Anwendung erstellen, welcher auf ein Schema dann volle Rechte genießt. Den Rest regelt eigentlich dann JPA. Oder missverstehe ich das Problem?

oh, da war mal wieder ein freizuschaltender Beitrag, den die Moderatoren auch so lesen können :wink:
von 16:10 nachzulesen,
17:07 wiederholt, der zweite wird gelöscht

Das kommt direkt von Ninja, keine Ahnung, wie das da intern verkabelt ist. Wie gesagt, das Ding hat nicht mal eine main-Methode. Man kann Maven auch „programmatisch“ starten, das macht die Sache meiner Meinung nach aber auch nicht viel besser (Maven ist ja weiter erforderlich).

kann man nicht Teile der Anwendung, die DB-Klassen testen (später der ganze Kern mit Swing-GUI), als einfaches Java-main-Programm starten? → Langzeitziel

Der einzige Test, der noch drin ist, stammt noch aus dem Original-Archetyp. Habe ich nur dringelassen, weil man sich eventuell vom Code etwas abschauen kann.

Prinzipiell ist es auch nicht schwer, eine Embedded-Datenbank für die Entwicklung einzusetzen (hatte mit H2 aber immer Ärger, so dass ich sie mit PostgreSQL ausgetauscht habe), Ninja unterstützt auch so etwas wie „Scopes“ (production/test) in der conf-Datei.

Wobei ich auch ein wenig auf die JSON-Fähigkeiten von PostgreSQL schiele, was es meines Wissens embedded nicht gibt.

lokale Postgres-Installation ist schon in Ordnung, nicht mit evtl. Krücken abmühen,
wichtig nur dass man mit den Java-Klassen aus dem Projekt direkt was anfangen kann, main-Methode und läuft,
nicht das ganze Forum, aber einzelne Funktionen, DB-Lade- und Speichermethoden mit Testdaten usw.,

nichts zu sehr von Web-Frameworks (außer die jeweilige Web-Schicht natürlich), Maven-Tools, Dependency-Injection usw. abhängig bauen,
oder Alternativen wie manuelle set-Aufrufe zulassen

habe bisher aber immer noch nicht reingeschaut außer vor paar Wochen kurz, geht sofort los :wink:

ach ja, JDK 8 herunterladen wohl erstmal nötig, 10 KB/s = bis morgen früh, naja
(edit: für heute abgebrochen, das allein kann ja noch ewig dauern…)

Vielleicht hilft dir das hier weiter: JSR330 · google/guice Wiki · GitHub

Edit: long story short:

Prefer JSR-330’s annotations and Provider interface.

So habe ich es inzwischen auch.

@Landei : hat das einen Grund, weshalb du so eine alte Version vom PostgreSQL-JDBC-Treiber verwendest?

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.4-1201-jdbc41</version>
</dependency>

Wäre die aktuellste.

*** Edit ***

Ein Zitat von der Downloadseite des JDBC-Treibers:

This is the current version of the driver. Unless you have unusual requirements (running old applications or JVMs), this is the driver you should be using. It supports Postgresql 7.2 or newer and requires a 1.6 or newer JVM. It contains support for SSL and the javax.sql package. If you are using the 1.6 then you should use the JDBC4 version. If you are using 1.7 or 1.8 then you should use the JDBC41 version. If you are using a java version older than 1.6 then you will need to use a JDBC3 version of the driver, which will by necessity not be current

Es sollte also eigentlich die jdbc41-Version verwendet werden.

Nein, da muss ich mich beim Kopieren vermacht haben. Hab’s jetzt geupdatet. Danke für den Tipp!