2010-09-29 13 views
0

J'essaie d'écrire des sérialiseurs personnalisés pour une servlet Oracle XSQL. J'essaie de garder mes deux sérialiseurs dans le fichier .ear local car ils sont encore en cours de développement et testés et je ne veux pas nuire au code de production. Cependant, je reçois l'erreur suivanteLe sérialiseur n'est pas défini dans le fichier de configuration XSQL

XML-25021: sérialiseur XLSv2 n'est pas défini dans le fichier de configuration XSQL

Répertoire Liste des .war/WEB-INF ressemble

classes/ 
     scott/ 
       XLSv2Serializer.class 
       XLSXSerializer.class 
lib/ 
    <empty> 
web.xml 
MyConfig.xml 

Mon WEB- INF/web.xml ressemble:

<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 ressemble:

<XSQLConfig> 
    <serializerdefs> 
    <serializer> 
     <name>XLSv2</name> 
     <class>scott.XLSv2Serializer</class> 
    </serializer> 
    <serializer> 
     <name>XLSX</name> 
     <class>scott.XLSXSerializer</class> 
    </serializer> 
    </serializerdefs> 
</XSQLConfig> 

Qu'est-ce qu'il me manque?

Répondre

0

Compris. Tout d'abord, je suis passé

<?xml-stylesheet serializer="{@serializer}"?> 

à

<?xml-stylesheet serializer="java:scott.XLSXSerializer"?> 

qui a forcé à regarder à l'intérieur WEB-INF/classes. Comme je n'ai pas d'accès pour éditer le XSQLConfig et que mes sérialiseurs sont locaux pour le .war, je lève le petit problème que je dois modifier manuellement le sérialiseur lors des tests. Après cela, je recevais un "Erreur de sérialiseur impossible à charger".

POI Apache ooxml nécessite des xmlbeans. Le deuxième problème était que xmlBeans n'était pas trouvé sur le serveur et ainsi le Serializer mourrait tranquillement et ne serait jamais chargé. Pour une raison quelconque, l'exception qui était lancée ne figurait pas dans le journal. Après avoir déplacé le code, principalement là où le classeur était créé, j'ai finalement vu l'exception. Le correctif mettait xmlbeans dans le répertoire lib dans le WEB-INF/

Enfin une remarque: comment je surcharger le xsql.config ne fonctionnait jamais, même si la documentation le dit. J'ai découvert cela en sciemment écrire du XML malformé dans MyConfig.XML. L'application est toujours déployée et s'est bien déroulée quand elle aurait échoué.

Si quelqu'un connaît un moyen de remplacer le XSQLConfig.xml pour un seul .ear, j'aimerais l'entendre.