XSQL配置文件中未定义Serializer

时间:2010-09-29 15:24:38

标签: oracle servlets jboss xsql

我正在尝试为Oracle XSQL Servlet编写一些自定义序列化程序。我正在尝试将我的两个序列化程序保留在本地.ear中,因为它们仍在开发和测试中,我不想损害生产代码。但是,我收到以下错误

XML-25021:XSQL配置文件

中未定义Serializer XLSv2

.war / WEB-INF的目录列表看起来像

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

我的WEB-INF / web.xml看起来像:

<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看起来像:

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

我错过了什么?

1 个答案:

答案 0 :(得分:0)

想出来。首先,我切换了

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

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

迫使它在WEB-INF / classes中查看。由于我没有编辑XSQLConfig的访问权限,而且我的序列化程序是.war的本地序列化程序,我将其抛到一个小烦恼,我必须在测试时手动更改序列化程序。

在此之后我得到了“序列化器无法加载错误”。

Apache POI ooxml需要xmlbeans。第二个问题是在服务器上找不到xmlBeans,因此Serializer会悄然死亡并且永远不会被加载。由于某种原因,抛出的异常没有进入日志。在移动代码之后,主要是创建工作簿的地方,我终于看到了异常。解决方法是将xmlbeans放在WEB-INF /

中的lib目录中

最后一个侧面说明:我如何覆盖xsql.config永远不会工作,即使文档说它应该。我通过故意在MyConfig.XML中编写格式错误的XML来发现这一点。该应用程序仍然部署并在应该失败时运行正常。

如果有人知道如何覆盖单个.ear的XSQLConfig.xml,我很乐意听到它。