-
JSON mit JPA und Eclipselink
Um JSON mit JPA und dem Provider Eclipselink zu verwenden, sind folgende Schritte notwendig In diesem Beispiel wollen wir eine Liste vom Typ AbstrachItem serialisieren und deserialisierten. Erstellen eines Konverters Der Konverter sagt JPA, wie mit den Daten umzugehen ist. In diesem Fall soll JSON marshall / unmarshall aufgerufen werden. In dem vereinfachten Code sorgt…
-
Jakarta Server Faces 4 und OpenLayers
Openlayers (https://openlayers.org/) ist wohl DIE Bibliothek, wenn es um Kartendarstellungen im Web geht (gerne auch in Verbindung mit dem Geo-Server – https://geoserver.org/). Sie lässt sich auch wunderbar im Kontext von Jakarta 10 verwenden. In der xhtml Seite muss hierfür ein Element mit der id=map eingefügt werden (die CSS Klassen machen hier das, was ihre Namen…
-
Ecliselink @ManyToOne erzeugt Inserts – eclipselink.id-validation
Wenn in einer Entität eine andere mit einer angebunden wurde, prüft Eclipslink, ob die angebundene Entität persistiert werden muss (und eine neue Sequenznummer gewählt werden soll). Wird die angebundene Entität als ungültig klassifiziert, wird ein INSERT erzeugt. Früher konnten die Werte „0“ als erlaubte IDs mit der Optionen (in der persistence.xml) verwendet werden. War diese…
-
Eclipselink unter Wildfly 27 – Jakarta 10
Nach langer Wartezeit ist endlich der Jakarta 10 fähige Wildfly 27 erschienen. Bei der Verwendung von Eclipselink 4 müssen allerdings ein paar Anpassungen im Modul gemacht werden, damit alles wie gewohnt läuft. Das Modul liegt unter In der module.xml müssen folgende Zeilen ergänzt werden, damit der Start erfolgreich funktioniert. Die gesamte module.xml sieht dann wie…
-
Wildfly – JAX RS und selbst signierte Zertifikate
In den meisten Entwicklungsumgebungen kommen selbst signierte Zertifikate zum Einsatz. Will man mit den Jackson, die Wildfly bereits bereitstellt auf solche Server zugreifen, ist einiges zu beachten. Zu Beginn sollten die Jackson Bibliotheken aus dem Wildfly in den Build eingebunden werden (grundsätzlich ist es eine gute Idee, die Bibliotheken von Wildfly auch in den Projekten…
-
JSF Kontextparameter Project Stage – Debugging
Der Parameter „Project Stage“ schaltet über die Werte „Development“ und „Production“ einige interne Optimierungen wie beispielsweise die Prüfung, ob neue xhtml Seiten compiliert werden müssen, ein oder aus (weitere Werte sind „SystemTest“, „UnitTest“). <context-param> <param-name>javax.faces.validator.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> Auch eigene Auswertungen können hierüber gesteuert werden. Innerhalb von Java kann mit Application.getProjectStage() Auf den Wert zugegriffen werden.…
-
Spooky Exceptions (11) – … javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
Umgebung Situation Bei dem Aufruf einer JPA Query wird folgende Exception geworfen … javax.ejb.EJBException: WFLYEJB0442: Unexpected Error … Caused by: java.lang.StackOverflowError at org.eclipse.persistence.jpa.jpql.parser.AbstractExpression.getRoot(AbstractExpression.java:530) at org.eclipse.persistence.jpa.jpql.parser.AbstractExpression.getRoot(AbstractExpression.java:530) at org.eclipse.persistence.jpa.jpql.parser.AbstractExpression.getRoot(AbstractExpression.java:530) … Lösung Ursache dieser Exception ist eine lange Kette von WHERE Bedingungen (ca 2250) in einer JPQL Abfrage, die über Parameter befüllt werden. Es scheint hier Grenzen in…
-
Spooky Exceptions (10) – An exception occurred while creating a query in EntityManager
Umgebung Situation Bei dem Aufruf einer JPA Query kommt eine Exception 2018-06-22 12:45:43,615 ERROR [org.jboss.as.ejb3.invocation] (default task-1) WFLYEJB0034: EJB Invocation failed on component DataPrivacyStatementAcceptanceFacade for method public abstract de.schoeso.festival.ejb.mde.DataPrivacyStatementAcceptanceList de.schoeso.festival.ejb.mde.facade.DataPrivacyStatementAcceptanceFacadeLocal.findByVariousParameters(): javax.ejb.EJBException: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: Exception Description: Problem compiling [SELECT x FROM DataPrivacyStatementAcceptance x]. [14, 44] The abstract schema…
-
Spooky (missing) Exceptions (9) – Objekt wird vom (Eclipse) JPA Provider nicht in die Datenbank geschrieben
Umgebung Situation Ein Subobjekt einer Entität (OneToOne), das über cascade = CascadeType.ALL angebunden ist, wird bei merge nicht persistiert. Analyse In diesem Fall wurde das Objekt nicht im Oberobjekt instanziiert @OneToOne(cascade = CascadeType.ALL, mappedBy = „repairWarranty“, fetch = FetchType.EAGER) private StateChange stateChange = null; Wenn ein abhägiges Objekt erst in einer Livecycle Methode @PostPersist instanziiert…
-
Spooky Exceptions (8) – Exception Description: Entity class [class … ] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass
Umgebung Situation Bei der Prüfung der persistence.xml beim Hochfahren des Servers wird folgende Exception geworfen: Internal Exception: Exception [EclipseLink-7161] (Eclipse Persistence Services – 2.6.4.v20160829-44060b6): org.eclipse.persistence.exceptions.ValidationException Exception Description: Entity class [class …] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass. If you have defined PK using any of these…