\RequirePackage{silence} % :-\ \WarningFilter{scrreprt}{Usage of package `titlesec'} %\WarningFilter{scrreprt}{Activating an ugly workaround} \WarningFilter{titlesec}{Non standard sectioning command detected} \documentclass[ openright,titlepage,numbers=noenddot,headinclude,%twoside, %1headlines,% letterpaper a4paper footinclude=true,cleardoublepage=empty,abstract=false, % <--- obsolete, remove (todo) BCOR=5mm,paper=a4,fontsize=11pt,%11pt,a4paper,% ngerman,american,%lockflag% ]{scrreprt} %************************************************************************* % Note: Make all your adjustments in here %************************************************************************* \input{marco-galster-config} \input{classicthesis-config} \renewcommand{\myThesisType}{Bachelorarbeit\xspace} %\renewcommand{\myTime}{22. Juli 2024\xspace} \renewcommand{\myVersion}{version 1.0\xspace} \makeatletter \addto\extrasngerman{ % Definition, um Umbrüche innerhalb von Text und Nr zu erlauben, damit kein % überschreiben des Randes auftritt \def\sectionautorefname{Abschnitt\hskip\z@skip} } \makeatother % https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings %\lstinputlisting[frame=tb,language=SQL,caption={ein sql beispiel},label=lst:tester]{chapters/thesis/chapter05_example.sql} \newcommand{\includecode}[4][c]{\lstinputlisting[caption=#4,label=#3,language=#1]{#2}} \lstset{frame=tb} \newcommand\mytodos[1]{\fcolorbox{black}{lightgray}{\parbox{\textwidth}{\textit{\textcolor{red}{TODO: #1}}}}} % Beispiel für externe Datei: %\includecode[SQL]{chapters/thesis/chapter05_example.sql}{lst:tester}{ein sql beispiel} % Beispiel für direkte Eingabe: %\begin{lstlisting}[float=b,language=Pascal,frame=tb,caption={A floating example (\texttt{listings} manual)},label=lst:useless] % for i:=maxint downto 0 do % begin % { do nothing or other things } % end; %\end{lstlisting} % Beispiel für Inline: %lorem ipsum \lstinline|code| lorem ipsum \input{tools/yaml_syntax_highlighting.tex} \input{tools/javascript_syntax_hightlighting.tex} %************************************************************************* % Bibliographies %************************************************************************* \addbibresource{Expose-ref.bib} %************************************************************************* % GO!GO!GO! MOVE IT! %************************************************************************* \begin{document} \frenchspacing \raggedbottom \selectlanguage{ngerman} % ngerman, american %************************************************************************* % Hyphenation - scheinbar erst nach Sprachselektion, sonst funktioniert es nicht %************************************************************************* \hyphenation{ Spei-cher-be-darf } %\renewcommand*{\bibname}{new name} %\setbibpreamble{} \pagenumbering{roman} \pagestyle{plain} %************************************************************************* % Frontmatter %************************************************************************* \include{frontbackmatter/Titlepage} \include{frontbackmatter/Titleback} %\cleardoublepage\include{frontbackmatter/Dedication} %\cleardoublepage\include{frontbackmatter/Foreword} \cleardoublepage\include{frontbackmatter/Declaration} \condLOCK{\cleardoublepage\include{frontbackmatter/BlockingNotice}} \cleardoublepage\include{frontbackmatter/thesis/AbstractEN} \cleardoublepage\include{frontbackmatter/thesis/AbstractDE} %\cleardoublepage\include{frontbackmatter/Publications} %\cleardoublepage\include{frontbackmatter/Acknowledgments} \cleardoublepage\include{frontbackmatter/Contents} \cleardoublepage\include{frontbackmatter/Figures} \cleardoublepage\include{frontbackmatter/Tables} \cleardoublepage\include{frontbackmatter/Listings} \cleardoublepage\include{frontbackmatter/thesis/Acronyms} %************************************************************************* % Mainmatter %************************************************************************* \cleardoublepage \pagestyle{scrheadings} \pagenumbering{arabic} % Alwas use \cleardoublepage before \part{...}. \cleardoublepage %\part{Thesis}\label{pt:thesis} \include{chapters/thesis/chapter01} \include{chapters/thesis/chapter02} \include{chapters/thesis/chapter03} \include{chapters/thesis/chapter04} \include{chapters/thesis/chapter05} \include{chapters/thesis/chapter06} \include{chapters/thesis/chapter07} %************************************************************************* % Backmatter %************************************************************************* \appendix %\renewcommand{\thechapter}{\alph{chapter}} \cleardoublepage \part{Appendix} %\include{chapters/thesis/appendix01} \include{chapters/thesis/appendix02} \include{chapters/thesis/appendix03} \include{chapters/thesis/appendix04} \include{chapters/thesis/appendix05} \include{chapters/thesis/appendix06} %************************************************************************* % Other Stuff in the Back %************************************************************************* \cleardoublepage\include{frontbackmatter/Bibliography} %************************************************************************* % Game Over: Restore, Restart, or Quit? %************************************************************************* \end{document} %************************************************************************* % Performance-Analysen Postgresql: % https://stackoverflow.com/questions/2430380/is-there-a-postgresql-equivalent-of-sql-server-profiler % https://www.postgresql.org/docs/current/runtime-config-logging.html#guc-log-statement % Allgemeine Webseite: % https://www.overleaf.com/learn/latex/Bibliography_management_with_natbib % https://postgrespro.com/docs/postgresql/14/runtime-config-resource % Frank Wedekind: % https://books.google.de/books?hl=de&lr=&id=3qO8DQAAQBAJ&oi=fnd&pg=PA1&dq=frank+wedekind&ots=S4LHWQ0h2e&sig=Mz8PEGF-md4n3AwH9cgXq-5vUac#v=onepage&q=frank%20wedekind&f=false % https://www.martin.germanistik.uni-mainz.de/forschung/frank-wedekind/ % Webseiten für Java und Payara % https://blog.payara.fish/how-to-deploy-an-application-on-payara-server-5 % https://docs.payara.fish/community/docs/6.2023.1/Technical%20Documentation/Ecosystem/IDE%20Integration/IntelliJ%20Plugin/Payara%20Server.html % Probleme mit Latexmk nach einen Update % pacman -S texlive-meta % > fmtutil-user --all % > sudo fmtutil-sys --all % Da ich beim Deployen immer wieder Zugriffsfehler mit "kein Zugriff auf Schema public" hatte, habe ich nochmal folgende Befehle % auf dem Datenbankserver ausgeführt um alle Rechte zu erteilen (Anlegen des User ausgenommen): % > sudo -u postgres psql % > CREATE USER onlineed WITH PASSWORD 'xxxxx'; % > GRANT ALL ON DATABASE wedeojpa to onlineed; -- diese kommt aus der Wiki, hat aber nicht gereicht % > GRANT ALL PRIVILEGES ON wedeojpa TO onlineed; % > \c wedeojpa postgres -- In die Datenbank wedeojpa wechseln unter dem User postgres % > GRANT ALL ON SCHEMA public TO onlineed; % nicht um die Rechte dem Benutzer onlineed % Installation Payara mit PostgreSQL % 1. Mit "yay -S payara" installieren lassen, liegt dann unter /opt/payara % 2. Mit "yay -S postgresql-jdbc" den Datenbanktreiber installieren % 3. Eigenen Benutzer der Gruppe payara hinzufügen, damit man es direkt von der IDE starten kann (gpasswd -a payara) % über "/opt/payara/bin/asadmin start-domain" kann der Server auch per hand gestartet werden und einem zusätzlichen "-d" % ist der Debugger aktiv, damit man über die IDE auch remote-debuggen kann (Es kann sein dass am Ende die Domain dazu muss) % 4. Beim Zugriffsfehler, muss die Log-Datei schreibrechte für die Gruppe zugeordnet werden. Hierfür nachfolgenden % Befehl im Ordner "/opt/payara/glassfish/domains/domain1/logs" ausführen: % > sudo chmod g+w -R * % Konfiguration von Idea % 1. Neue Payara Server - Local hinzufügen % 2. Bei Before Lunch "Build artifact" hinzufügen und "WedekindJSF.war" auswählen % 3. Unter Deployment "Artifact" "WedekindJSF.war" hinzufügen % 4. Sollte es Probleme mit dem Deployment geben, ala "kann ...Servlet-class nof found" einfach alle target-Verzeichnis löschen % und erneut Deployen oder vielleicht ein Rebuild auf dem Projekt probieren % Konfiguration GlassFish/Payara (Muss scheinbar nach jedem neustart des Rechners gemacht werden) % 1. Payara-Server starten, damit man an die Admin-Oberfläche kommt unter http://localhost:4848/ % > /opt/payara/bin/asadmin start-domain domain1 % 2. Unter Ressources\JDBC\JDBC Connection Pools einen neuen Anlegen: % 2.1. Poolname vergeben % 2.2. Resource Type: javax.sql.DataSource % 2.3. Database Driver Vender: Postgresql (Wenn die Auswahl nicht stehen bleibt, dann im Feld darunter fix eintragen) % 2.4. Mit Next bestätigen % 2.5. Datasource Classname prüfen, sollte auf org.postgresql.ds.PGSimpleDataSource oder org.postgresql.ds.PGSimpleDataSource sein % 2.6. Die Felder User, Password und databaseName ausfüllen (Infos siehe payra-resources.xml) % 2.7. Mit Finish bestätigen % 3. Unter Resources\JDBC\JDBC Resources einen neuen Anlegen: % 3.1. JNDI Name: jdbc/wedekindPostgreSQL (muss mit jta-data-source aus persistence.xml zusammen passen) % 3.2. Pool Name: den unter 2 angelegten Pool auswählen % 3.3. Mit Save bestätigen % 4. Payara-Server neustarten % Sollte der Ping nicht gehen, dann braucht man noch die Treiber, welche hier zu finden sind: https://jdbc.postgresql.org/download/ % Häufige Fehlermeldung dafür ist "No suitable driver found for jdbc:postgresql://...." % Nach dem Download mit nachfolgendem Kommando hinzufügen: % > /opt/payara/bin/asadmin add-library /path/to/download/jdbcdriver.jar % > sudo -i -u postgres % > psql % > CREATE EXTENSION adminpack; % danach sollte der Ping auf der Webseite gehen % Java-Programm % WedekindEJB beinhaltet die Datenbank-Klassen und den Zugriff in die DB, sowie die TEI Implementierung % WedekindJSF beinhaltet die WebOberfläche % Unter de.wedekind sind die Funktionen/Controller zu finden % Unter webapp findet man die Views % Unter WEB-INF/layout findet man die Sonder-Elemente wie Footer, Header usw. % Die Verknüpfung von View zu Controller passiert scheinbar in der viewAction, bei der die Setup-Funktion des Controllers gerufen wird % bzw. den direkten Aufrufen der Controller-Namen innerhalb von #{}, wobei der erste Buchstabe klein ist % Der URL-Aufbau wird durch den webapp-Ordner vorgegeben.