Serializer nicht in XSQL Konfigurationsdatei
Frage
Ich versuche, einige benutzerdefinierten Serializer für einen Oracle-XSQL Servlet zu schreiben. Ich versuche, meine zwei Serializer innerhalb des lokalen .ear zu halten, weil sie immer noch entwickelt und getestet werden, und ich will nicht, Produktionscode verletzen. Allerdings bin ich die folgende Fehlermeldung bekommen
XML-25021: Serializer XLSv2 ist nicht definiert in XSQL Konfigurationsdatei
Verzeichnisliste von .war / WEB-INF sieht aus wie
classes/
scott/
XLSv2Serializer.class
XLSXSerializer.class
lib/
<empty>
web.xml
MyConfig.xml
My WEB-INF / web.xml sieht aus wie:
<web-app>
<display-name>demoSerializer</display-name>
<distributable />
<init-param>
<param-name>xsql.config</param-name>
<param-value>MyConfig.xml</param-value>
<description>use my dev config file</description>
</init-param>
</web-app>
MyConfig.XML sieht aus wie:
<XSQLConfig>
<serializerdefs>
<serializer>
<name>XLSv2</name>
<class>scott.XLSv2Serializer</class>
</serializer>
<serializer>
<name>XLSX</name>
<class>scott.XLSXSerializer</class>
</serializer>
</serializerdefs>
</XSQLConfig>
Was bin ich etwas fehlt?
Lösung
es herausgefunden. Zuerst habe ich eingeschaltet
<?xml-stylesheet serializer="{@serializer}"?>
<?xml-stylesheet serializer="java:scott.XLSXSerializer"?>
, die sie gezwungen, in WEB-INF / classes zu suchen. Da ich die XSQLConfig keinen Zugriff bearbeiten und meine Serializer zum .war lokal sind, ich bin zu werfen auf ein kleines Ärgernis, dass ich zu manualy Änderung habe die Serializer bei der Prüfung.
Danach war ich einen „Serializer nicht geladen Fehler sein könnte“ zu bekommen.
Apache POI OOXML erfordert XMLBeans. Das zweite Problem war, dass XMLBeans wurde auf dem Server nicht gefunden werden und damit die Serializer würden ruhig sterben und nie geladen werden. Aus irgendeinem Grund, dass die Ausnahme ausgelöst wurde nicht in das Protokoll zu bekommen. Nach dem Umzug Code um vor allem, wo die Arbeitsmappe erstellt wurde, sah ich endlich die Ausnahme. Das Update wurde XMLBeans im Verzeichnis lib im WEB-INF /
setzenEndlich eine Randbemerkung: Wie ich die xsql.config außer Kraft gesetzt wurde nie funktioniert, obwohl die Dokumentation sagt es soll. Ich fand dies heraus, indem Sie wissentlich fehlerhafte XML in MyConfig.XML zu schreiben. Die App noch im Einsatz und läuft gut, wenn es versäumt haben sollte.
Wenn jemand eine Möglichkeit kennt die XSQLConfig.xml für einen einzelnen .ear außer Kraft zu setzen, würde ich gerne hören.