- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Problem mit Datenbank-Schema und FSI
Hallo Community!
Ich hätte da gerne mal ein Problem. Folgende Situation: Ich habe ein Datenbank-Schema und darin diverse Tabellen.
Eine Tabelle ist z.B. "Stellenangebot", hier das XML-Schema dazu:
<xs:complexType dbName="stellenangebot" name="Stellenangebot">
<xs:sequence>
<xs:element dbName="arbeitszeit" javaType="java.lang.String" length="20" name="arbeitszeit" nullable="1" type="xs:string"/>
<xs:element dbName="aufgaben" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="aufgaben" nullable="1" type="xml"/>
<xs:element dbName="ausbildungsrahmen" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="ausbildungsrahmen" nullable="1" type="xml"/>
<xs:element dbName="berufschule" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="berufschule" nullable="1" type="xml"/>
<xs:element dbName="beschreibung" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="beschreibung" nullable="1" type="xml"/>
<xs:element dbName="changed_by" hidden="1" javaType="java.lang.Long" name="changed by" nullable="1" type="xs:long"/>
<xs:element dbName="eintrittstermin" javaType="java.util.Date" name="eintrittstermin" nullable="1" type="xs:date"/>
<xs:element dbName="erscheinungsdatum" javaType="java.util.Date" name="erscheinungsdatum" nullable="1" type="xs:date"/>
<xs:element dbName="fs_id" hidden="1" javaType="java.lang.Integer" name="fs_id" type="xs:integer"/>
<xs:element dbName="inhalt_ad" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="inhalt_ad" nullable="1" type="xml"/>
<xs:element dbName="inhalt_id" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="inhalt_id" nullable="1" type="xml"/>
<xs:element dbName="itzehoer" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="itzehoer" nullable="1" type="xml"/>
<xs:element dbName="jobtitel" javaType="java.lang.String" length="150" name="jobtitel" nullable="1" type="xs:string"/>
<xs:element dbName="kontaktformular_ref_id" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="kontaktformular_ref_id" nullable="1" type="xml"/>
<xs:element dbName="kurzbeschreibung" javaType="java.lang.String" length="200" name="kurzbeschreibung" nullable="1" type="xs:string"/>
<xs:element dbName="leistungen" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="leistungen" nullable="1" type="xml"/>
<xs:element dbName="ort" javaType="java.lang.String" length="150" name="ort" nullable="1" type="xs:string"/>
<xs:element dbName="profil" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="profil" nullable="1" type="xml"/>
<xs:element dbName="released_by" hidden="1" javaType="java.lang.Long" name="released by" nullable="1" type="xs:long"/>
<xs:element dbName="stelle" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="stelle" nullable="1" type="xml"/>
<xs:element dbName="voraussetzungen" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="voraussetzungen" nullable="1" type="xml"/>
<xs:element dbName="wf_col" hidden="1" javaType="java.awt.Color" name="wf col" nullable="1" type="xs:integer"/>
<xs:element dbName="wf_id" hidden="1" javaType="java.lang.Long" name="wf id" nullable="1" type="xs:long"/>
<xs:element dbName="wirbenoetigen" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="wirbenoetigen" nullable="1" type="xml"/>
<xs:element dbName="anst_fs_id" name="anst_fs_id" nullable="1" type="xs:integer" visible="0"/>
<xs:element dbName="ausb_fs_id" name="ausb_fs_id" nullable="1" type="xs:integer" visible="0"/>
<xs:element dbName="fs_release_to" name="fs_release_to" type="xs:long" visible="0"/>
<xs:element dbName="fs_valid_from" name="fs_valid_from" type="xs:long" visible="0"/>
<xs:element dbName="fs_valid_to" name="fs_valid_to" type="xs:long" visible="0"/>
<xs:element dbName="kont_fs_id" name="kont_fs_id" nullable="1" type="xs:integer" visible="0"/>
</xs:sequence>
</xs:complexType>
<xs:key dbName="pk_stellenangebot" name="pk_Stellenangebot">
<xs:selector xpath="Stellenangebot"/>
<xs:attribute xpath="fs_id"/>
<xs:attribute xpath="fs_release_to"/>
<xs:attribute xpath="fs_valid_from"/>
<xs:attribute xpath="fs_valid_to"/>
</xs:key>
Ich greife nun mit FSI auf diese Tabelle zu und lese anhand verschiedener Kriterien Daten aus. Das klappt auch problemlos und ist nicht das Problem.
Ich verarbeite die Daten weiter und möchte auf Fremdschlüssel-Tabellen zugreifen. Der Code-Ausschnitt dazu:
<c:forEach items="${stellenangebote}" var="stellenangebot" varStatus="anzahl">
<%
Entity job = (Entity)pageContext.findAttribute("stellenangebot");
Entity anstellungsverhaeltnis = (Entity) job.getValue("anstellungsverhaeltnis");
Entity ausbildungsregion = (Entity) job.getValue("ausbildungsregion");
Und hier taucht das Problem auf. Ich kann zwar auf das Anstellungsverhältnis zugreifen, aber nicht auf die Ausbildungsregion. Da bekomme ich immer null zurück, obwohl in der Datenquelle alles korrekt gefüllt und gespeichert wird.
Hier das XML-Schema "Anstellungsverhältnis":
<xs:complexType dbName="anstellungsverhaeltnis" name="Anstellungsverhaeltnis">
<xs:sequence>
<xs:element dbName="changed_by" hidden="1" javaType="java.lang.Long" name="changed by" nullable="1" type="xs:long"/>
<xs:element dbName="fs_id" hidden="1" javaType="java.lang.Integer" name="fs_id" type="xs:integer"/>
<xs:element dbName="kennzeichen" javaType="java.lang.String" length="64" name="kennzeichen" nullable="1" type="xs:string"/>
<xs:element dbName="name" javaType="java.lang.String" length="120" name="name" nullable="1" type="xs:string"/>
<xs:element dbName="released_by" hidden="1" javaType="java.lang.Long" name="released by" nullable="1" type="xs:long"/>
<xs:element dbName="wf_col" hidden="1" javaType="java.awt.Color" name="wf col" nullable="1" type="xs:integer"/>
<xs:element dbName="wf_id" hidden="1" javaType="java.lang.Long" name="wf id" nullable="1" type="xs:long"/>
<xs:element dbName="fs_release_to" name="fs_release_to" type="xs:long" visible="0"/>
<xs:element dbName="fs_valid_from" name="fs_valid_from" type="xs:long" visible="0"/>
<xs:element dbName="fs_valid_to" name="fs_valid_to" type="xs:long" visible="0"/>
</xs:sequence>
</xs:complexType>
<xs:key dbName="pk_anstellungsverhaeltnis" name="pk_Anstellungsverhaeltnis">
<xs:selector xpath="Anstellungsverhaeltnis"/>
<xs:attribute xpath="fs_id"/>
<xs:attribute xpath="fs_release_to"/>
<xs:attribute xpath="fs_valid_from"/>
<xs:attribute xpath="fs_valid_to"/>
</xs:key>
<xs:keyref dbName="fk_stellenangebot_anstellungsver" field="stellenangebotList" name="fk_Stellenangebot_Anstellungsverhaeltnis" refer="Anstellungsverhaeltnis" tfield="anstellungsverhaeltnis">
<xs:selector xpath="Stellenangebot"/>
<xs:attribute xpath="anst_fs_id"/>
</xs:keyref>
Und hier "Ausbildungsregion":
<xs:complexType dbName="ausbildungsregion" name="Ausbildungsregion">
<xs:sequence>
<xs:element dbName="abkuerzung" javaType="java.lang.String" length="2" name="abkuerzung" type="xs:string"/>
<xs:element dbName="beschreibung" javaType="java.lang.String" length="64" name="beschreibung" type="xs:string"/>
<xs:element dbName="changed_by" hidden="1" javaType="java.lang.Long" name="changed by" nullable="1" type="xs:long"/>
<xs:element dbName="fs_id" hidden="1" javaType="java.lang.Integer" name="fs_id" type="xs:integer"/>
<xs:element dbName="released_by" hidden="1" javaType="java.lang.Long" name="released by" nullable="1" type="xs:long"/>
<xs:element dbName="wf_col" hidden="1" javaType="java.awt.Color" name="wf col" nullable="1" type="xs:integer"/>
<xs:element dbName="wf_id" hidden="1" javaType="java.lang.Long" name="wf id" nullable="1" type="xs:long"/>
<xs:element dbName="fs_release_to" name="fs_release_to" type="xs:long" visible="0"/>
<xs:element dbName="fs_valid_from" name="fs_valid_from" type="xs:long" visible="0"/>
<xs:element dbName="fs_valid_to" name="fs_valid_to" type="xs:long" visible="0"/>
</xs:sequence>
</xs:complexType>
<xs:key dbName="pk_ausbildungsregion" name="pk_Ausbildungsregion">
<xs:selector xpath="Ausbildungsregion"/>
<xs:attribute xpath="fs_id"/>
<xs:attribute xpath="fs_release_to"/>
<xs:attribute xpath="fs_valid_from"/>
<xs:attribute xpath="fs_valid_to"/>
</xs:key>
<xs:keyref dbName="fk_stellenangebot_ausbildungsreg" field="stellenangebotList" name="fk_stellenangebot_ausbildungsregion" refer="Ausbildungsregion" tfield="ausbildungsregion">
<xs:selector xpath="Stellenangebot"/>
<xs:attribute xpath="ausb_fs_id"/>
</xs:keyref>
Ich sehe das Problem nicht. Woran kann es liegen, dass ich immer nur null zurückbekomme?
Grüße
Marcus
- Labels:
-
Developers
-
Knowledgebase
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nach dem Telefonat mit dem Helpdesk, ist das Problem gefunden. Die Konfiguration in der fsweb.xml.
Dort stand folgendes in einer Zeile drin:
jdbc:mysql://op1000.iv.local:3306/itzehoer_relaunch?useUnicode=true&characterEncoding=UTF8&autoReconnect=true
Die &-Zeichen müssen kodiert werden, damit das klappt! Also:
jdbc:mysql://op1000.iv.local:3306/itzehoer_relaunch?useUnicode=true&characterEncoding=UTF8&autoReconnect=true
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nach einem Update auf FS 4.2.223 bekomme ich nun in der Preview folgenden Fehler um die Ohren. Da scheint was mit FSI nicht so zu klappen...
java.lang.IllegalArgumentException: SessionManager.createSession: no handler registered for schema 'Data'
org.apache.jasper.JasperException: java.lang.IllegalArgumentException: SessionManager.createSession: no handler registered for schema 'Data'
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:527)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at de.espirit.firstspirit.io.servlet.PreviewServlet.deliverPreview(PreviewServlet.java:397)
at de.espirit.firstspirit.io.servlet.PreviewServlet.doPost(PreviewServlet.java:215)
at de.espirit.firstspirit.io.servlet.PreviewServlet.doGet(PreviewServlet.java:164)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at de.espirit.firstspirit.io.servlet.WebAuthentication.doChain(WebAuthentication.java:603)
at de.espirit.firstspirit.io.servlet.WebAuthentication.doFilter(WebAuthentication.java:468)
at de.espirit.firstspirit.io.servlet.WebAuthentication.doFilter(WebAuthentication.java:146)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: SessionManager.createSession: no handler registered for schema 'Data'
at de.espirit.or.impl.web.SessionManagerImpl.createSession(SessionManagerImpl.java:114)
at de.espirit.or.impl.web.SessionManagerImpl.getSession(SessionManagerImpl.java:76)
at de.espirit.firstspirit.opt.integration.web.WebContext.getSession(WebContext.java:66)
at de.espirit.firstspirit.opt.integration.web.SearchTag.setQuery(SearchTag.java:77)
at de.espirit.firstspirit.opt.integration.web.QueryTag.doEndTag(QueryTag.java:15)
at org.apache.jsp.preview_005fcache._17145759.DE_005fc_005f22194436_17145762_jsp._jspx_meth_fsi_005fquery_005f0(DE_005fc_005f22194436_17145762_jsp.java:704)
at org.apache.jsp.preview_005fcache._17145759.DE_005fc_005f22194436_17145762_jsp._jspService(DE_005fc_005f22194436_17145762_jsp.java:326)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
... 34 more
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hört sich so an als hätten Sie nach dem Update die aktualisierte Version des Integration-Modules noch nicht in das Vorschausystem ausgerollt. Eventuell ist dort die Konfiguration auch noch nicht korrekt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Haben alle Änderungen auch in der Preview nachgezogen, auch Data.schema.xsd wurde aktualisiert, aber der Fehler ist weiterhin vorhanden.
Bitte dringend um Hilfe!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich würde empfehlen ein Ticket beim Helpdesk zu öffnen, damit mal jemand direkt auf das System schauen kann.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das Problem lag an einem ungültigen Inhalt der fsweb.xml Datei. Der Parameter "jdbc.URL" lautete dort
"jdbc:mysql://...?useUnicode=true&characterEncoding=UTF8&autoReconnect=true" />
Die "&"-Zeichen sind aber in XML nicht erlaubt.
Da die WebApplikation nicht unter internem Jetty, sondern im externen Tomcat lief, konnte man einen ensprechenden Fehler "ungültiges XML" nur dort lokalisieren.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nach dem Telefonat mit dem Helpdesk, ist das Problem gefunden. Die Konfiguration in der fsweb.xml.
Dort stand folgendes in einer Zeile drin:
jdbc:mysql://op1000.iv.local:3306/itzehoer_relaunch?useUnicode=true&characterEncoding=UTF8&autoReconnect=true
Die &-Zeichen müssen kodiert werden, damit das klappt! Also:
jdbc:mysql://op1000.iv.local:3306/itzehoer_relaunch?useUnicode=true&characterEncoding=UTF8&autoReconnect=true

